fuse: fix SEEK_END incorrectness
authorMiklos Szeredi <mszeredi@suse.cz>
Thu, 16 Oct 2008 14:08:56 +0000 (16:08 +0200)
committerMiklos Szeredi <miklos@szeredi.hu>
Thu, 16 Oct 2008 14:08:56 +0000 (16:08 +0200)
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>
fs/fuse/file.c

index 2bada6b..98079aa 100644 (file)
@@ -1448,6 +1448,9 @@ static loff_t fuse_file_llseek(struct file *file, loff_t offset, int origin)
        mutex_lock(&inode->i_mutex);
        switch (origin) {
        case SEEK_END:
+               retval = fuse_update_attributes(inode, NULL, file, NULL);
+               if (retval)
+                       return retval;
                offset += i_size_read(inode);
                break;
        case SEEK_CUR: