summaryrefslogtreecommitdiff
path: root/fs/fuse/fuse_i.h
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2007-11-28 16:21:59 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-11-29 09:24:54 -0800
commitbcb4be809d2a804ff040d95db4a664113833e702 (patch)
tree11a3aad0dc7df29906e2b379d13f14ccf26c9b56 /fs/fuse/fuse_i.h
parentb6fd6ecb830444636bc4e9d626f214082c91fffe (diff)
downloadlwn-bcb4be809d2a804ff040d95db4a664113833e702.tar.gz
lwn-bcb4be809d2a804ff040d95db4a664113833e702.zip
fuse: fix reading past EOF
Currently reading a fuse file will stop at cached i_size and return EOF, even though the file might have grown since the attributes were last updated. So detect if trying to read past EOF, and refresh the attributes before continuing with the read. Thanks to mpb for the report. 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/fuse_i.h')
-rw-r--r--fs/fuse/fuse_i.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 6c5461de1a5f..19b0129c9811 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -593,3 +593,6 @@ int fuse_valid_type(int m);
int fuse_allow_task(struct fuse_conn *fc, struct task_struct *task);
u64 fuse_lock_owner_id(struct fuse_conn *fc, fl_owner_t id);
+
+int fuse_update_attributes(struct inode *inode, struct kstat *stat,
+ struct file *file, bool *refreshed);