This series is mostly about mmap and inode IO modes. Patch 1/4 was already posted before https://patchwork.kernel.org/project/linux-fsdevel/patch/20231213150703.6262-1-bschubert@xxxxxxx/ but is included here again, as especially patch 4/4 has a dependency on it. Amir has also spotted a typo in the commit message of the initial patch, which is corrected here. Patch 2/4 and 3/4 add helper functions, which are needed by the main patch (4/4) in this series and are be also needed by another fuse direct-IO series. That series needs the helper functions in fuse_cache_write_iter, thus, these new helpers are above that function. Patch 4/4 is the main patch in the series, which adds inode IO modes, which is needed to re-enable shared DIO writes locks when FUSE_DIRECT_IO_ALLOW_MMAP is set. Furthermore, these IO modes are also needed by Amirs WIP fuse passthrough work. The conflict of FUSE_DIRECT_IO_ALLOW_MMAP and FOPEN_PARALLEL_DIRECT_WRITES was detected by xfstest generic/095. This patch series was tested by running a loop of that test and also by multiple runs of the complete xfstest suite. For testing with libfuse the branch of this pull request is needed https://github.com/libfuse/libfuse/pull/870 Amir Goldstein (1): fuse: introduce inode io modes Bernd Schubert (3): fuse: Fix VM_MAYSHARE and direct_io_allow_mmap fuse: Create helper function if DIO write needs exclusive lock fuse: Add fuse_dio_lock/unlock helper functions fs/fuse/file.c | 268 ++++++++++++++++++++++++++++++++------ fs/fuse/fuse_i.h | 76 ++++++++++- include/uapi/linux/fuse.h | 2 + 3 files changed, 302 insertions(+), 44 deletions(-) -- 2.40.1