From: Miklos Szeredi Date: Thu, 9 Apr 2009 15:37:53 +0000 (+0200) Subject: fuse: fix "direct_io" private mmap X-Git-Tag: v2.6.30-rc2~4^2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=3121bfe7631126d1b13064855ac2cfa164381bb0;p=~shefty%2Frdma-dev.git fuse: fix "direct_io" private mmap 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 --- diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 0946861b10b..06f30e96567 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -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); }