]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
fuse: fix "direct_io" private mmap
authorMiklos Szeredi <mszeredi@suse.cz>
Thu, 9 Apr 2009 15:37:53 +0000 (17:37 +0200)
committerMiklos Szeredi <mszeredi@suse.cz>
Thu, 9 Apr 2009 15:37:53 +0000 (17:37 +0200)
MAP_PRIVATE mmap could return stale data from the cache for
"direct_io" files.  Fix this by flushing the cache on mmap.

Found with a slightly modified fsx-linux.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
fs/fuse/file.c

index 0946861b10b7eabe917670c127ec922b69cc5688..06f30e965676e00d9b781eaf9d666686c2a3f214 100644 (file)
@@ -1298,6 +1298,8 @@ static int fuse_direct_mmap(struct file *file, struct vm_area_struct *vma)
        if (vma->vm_flags & VM_MAYSHARE)
                return -ENODEV;
 
+       invalidate_inode_pages2(file->f_mapping);
+
        return generic_file_mmap(file, vma);
 }