aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fuse
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2008-10-16 10:08:56 -0400
committerMiklos Szeredi <miklos@szeredi.hu>2008-10-16 10:08:56 -0400
commit769415c61191bc860f60c6edc3cb7cba24fb3218 (patch)
treec9ca5eb8afd1e4848967c3ec5a0a97dcda395e3f /fs/fuse
parent04ab591808565f968d4406f6435090ad671ebdab (diff)
fuse: fix SEEK_END incorrectness
Update file size before using it in lseek(..., SEEK_END). Reported-by: Amnon Shiloh <u3557@miso.sublimeip.com> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'fs/fuse')
-rw-r--r--fs/fuse/file.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 2bada6bbc317..98079aa800e8 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1448,6 +1448,9 @@ static loff_t fuse_file_llseek(struct file *file, loff_t offset, int origin)
1448 mutex_lock(&inode->i_mutex); 1448 mutex_lock(&inode->i_mutex);
1449 switch (origin) { 1449 switch (origin) {
1450 case SEEK_END: 1450 case SEEK_END:
1451 retval = fuse_update_attributes(inode, NULL, file, NULL);
1452 if (retval)
1453 return retval;
1451 offset += i_size_read(inode); 1454 offset += i_size_read(inode);
1452 break; 1455 break;
1453 case SEEK_CUR: 1456 case SEEK_CUR: