mbox series

[0/4] fuse: inode IO modes and mmap

Message ID 20231224104914.49316-1-bschubert@ddn.com (mailing list archive)
Headers show
Series fuse: inode IO modes and mmap | expand

Message

Bernd Schubert Dec. 24, 2023, 10:49 a.m. UTC
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@ddn.com/
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(-)