diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2007-11-28 16:22:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-29 09:24:54 -0800 |
commit | a6643094e73247c1ebd36816f494f631fa7be348 (patch) | |
tree | 11ba2e666b6fea1cdf579616d6a04b0afd24f61c /fs/fuse/dir.c | |
parent | 7dca9fd39f7d4605ac178a67bb1772381056917d (diff) | |
download | kernel_goldelico_gta04-a6643094e73247c1ebd36816f494f631fa7be348.zip kernel_goldelico_gta04-a6643094e73247c1ebd36816f494f631fa7be348.tar.gz kernel_goldelico_gta04-a6643094e73247c1ebd36816f494f631fa7be348.tar.bz2 |
fuse: pass open flags to read and write
Some open flags (O_APPEND, O_DIRECT) can be changed with fcntl(F_SETFL, ...)
after open, but fuse currently only sends the flags to userspace in open.
To make it possible to correcly handle changing flags, send the
current value to userspace in each read and write.
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 | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index c84f825..dfc32dc 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -964,7 +964,6 @@ static int fuse_readdir(struct file *file, void *dstbuf, filldir_t filldir) struct page *page; struct inode *inode = file->f_path.dentry->d_inode; struct fuse_conn *fc = get_fuse_conn(inode); - struct fuse_file *ff = file->private_data; struct fuse_req *req; if (is_bad_inode(inode)) @@ -981,7 +980,7 @@ static int fuse_readdir(struct file *file, void *dstbuf, filldir_t filldir) } req->num_pages = 1; req->pages[0] = page; - fuse_read_fill(req, ff, inode, file->f_pos, PAGE_SIZE, FUSE_READDIR); + fuse_read_fill(req, file, inode, file->f_pos, PAGE_SIZE, FUSE_READDIR); request_send(fc, req); nbytes = req->out.args[0].size; err = req->out.h.error; |