diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2008-10-16 10:08:56 -0400 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2008-10-16 10:08:56 -0400 |
commit | 769415c61191bc860f60c6edc3cb7cba24fb3218 (patch) | |
tree | c9ca5eb8afd1e4848967c3ec5a0a97dcda395e3f /fs/fuse | |
parent | 04ab591808565f968d4406f6435090ad671ebdab (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.c | 3 |
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: |