From: Hao Xu <howeyxu@xxxxxxxxxxx> Patch 1 is a fix for private mmap in FOPEN_DIRECT_IO mode This is added here together since the later two depends on it. Patch 2 is the main dish Patch 3 is to maintain direct io logic for shared mmap in FOPEN_DIRECT_IO mode v3 -> v4 fix race condition for buffered write and direct read by flushing pages before direct read to avoid to get stale data v2 -> v3 add patch 1 fix here, and adjust it follow Bernd's comment add patch 3 which does right thing for shared mmap in FOPEN_DIRECT_IO mode v1 -> v2: make the new flag a fuse init one rather than a open flag since it's not common that different files in a filesystem has different strategy of shared mmap. Hao Xu (3): fuse: invalidate page cache pages before direct write fuse: add a new fuse init flag to relax restrictions in no cache mode fuse: write back dirty pages before direct write in direct_io_relax mode fs/fuse/file.c | 26 +++++++++++++++++++++++--- fs/fuse/fuse_i.h | 3 +++ fs/fuse/inode.c | 5 ++++- include/uapi/linux/fuse.h | 4 ++++ 4 files changed, 34 insertions(+), 4 deletions(-) base-commit: 5d0c230f1de8c7515b6567d9afba1f196fb4e2f4 -- 2.25.1