diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2008-04-30 00:54:43 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 08:29:50 -0700 |
commit | 5c5c5e51b26413d50a9efae2ca7d6c5c6cd453ac (patch) | |
tree | 4f78209ad05e429a0b89658e495fca9b9262d81d /fs/fuse/dir.c | |
parent | ea9b9907b82a09bd1a708004454f7065de77c5b0 (diff) | |
download | op-kernel-dev-5c5c5e51b26413d50a9efae2ca7d6c5c6cd453ac.zip op-kernel-dev-5c5c5e51b26413d50a9efae2ca7d6c5c6cd453ac.tar.gz |
fuse: update file size on short read
If the READ request returned a short count, then either
- cached size is incorrect
- filesystem is buggy, as short reads are only allowed on EOF
So assume that the size is wrong and refresh it, so that cached read() doesn't
zero fill the missing chunk.
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 | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 48b9971..2060bf0 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -132,7 +132,7 @@ static void fuse_lookup_init(struct fuse_req *req, struct inode *dir, req->out.args[0].value = outarg; } -static u64 fuse_get_attr_version(struct fuse_conn *fc) +u64 fuse_get_attr_version(struct fuse_conn *fc) { u64 curr_version; |