android_kernel_oneplus_msm8998/fs/fuse
Brian Foster 3634a63278 fuse: truncate pagecache range on hole punch
fuse supports hole punch via the fallocate() FALLOC_FL_PUNCH_HOLE
interface. When a hole punch is passed through, the page cache
is not cleared and thus allows reading stale data from the cache.

This is easily demonstrable (using FOPEN_KEEP_CACHE) by reading a
smallish random data file into cache, punching a hole and creating
a copy of the file. Drop caches or remount and observe that the
original file no longer matches the file copied after the hole
punch. The original file contains a zeroed range and the latter
file contains stale data.

Protect against writepage requests in progress and punch out the
associated page cache range after a successful client fs hole
punch.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2013-05-20 16:58:57 +02:00
..
control.c fs: Limit sys_mount to only request filesystem modules. 2013-03-03 19:36:31 -08:00
cuse.c Merge branch 'akpm' (incoming from Andrew) 2013-05-07 20:49:51 -07:00
dev.c Merge branch 'akpm' (incoming from Andrew) 2013-05-07 20:49:51 -07:00
dir.c fuse: truncate file if async dio failed 2013-04-18 10:55:24 +02:00
file.c fuse: truncate pagecache range on hole punch 2013-05-20 16:58:57 +02:00
fuse_i.h fuse: add flag to turn on async direct IO 2013-05-01 14:37:21 +02:00
inode.c fuse: add flag to turn on async direct IO 2013-05-01 14:37:21 +02:00
Kconfig fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig 2013-01-17 13:08:45 +01:00
Makefile CUSE: implement CUSE - Character device in Userspace 2009-06-09 11:24:11 +02:00