diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2007-10-18 03:07:04 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 14:37:31 -0700 |
commit | f33321141b273d60cbb3a8f56a5489baad82ba5e (patch) | |
tree | b6443b674600dcdb8c33aa6d44b7a673edc255b4 /fs/fuse/dir.c | |
parent | b25e82e5673c750116e8b01a4fc7d09be7809f8c (diff) |
fuse: add support for mandatory locking
For mandatory locking the userspace filesystem needs to know the lock
ownership for read, write and truncate operations.
This patch adds the necessary fields to the protocol.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fuse/dir.c')
-rw-r--r-- | fs/fuse/dir.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 052327bd6c9..6c83ed05202 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -1108,6 +1108,11 @@ static int fuse_do_setattr(struct dentry *entry, struct iattr *attr, inarg.valid |= FATTR_FH; inarg.fh = ff->fh; } + if (attr->ia_valid & ATTR_SIZE) { + /* For mandatory locking in truncate */ + inarg.valid |= FATTR_LOCKOWNER; + inarg.lock_owner = fuse_lock_owner_id(fc, current->files); + } req->in.h.opcode = FUSE_SETATTR; req->in.h.nodeid = get_node_id(inode); req->in.numargs = 1; |