linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] fuse: inode IO modes and mmap
@ 2024-01-31 23:08 Bernd Schubert
  2024-01-31 23:08 ` [PATCH v2 1/5] fuse: Fix VM_MAYSHARE and direct_io_allow_mmap Bernd Schubert
                   ` (5 more replies)
  0 siblings, 6 replies; 40+ messages in thread
From: Bernd Schubert @ 2024-01-31 23:08 UTC (permalink / raw)
  To: miklos
  Cc: linux-fsdevel, dsingh, Bernd Schubert, Amir Goldstein,
	Bernd Schubert

This series is mostly about mmap, direct-IO and inode IO modes.
(new in this series is FOPEN_CACHE_IO).
It brings back the shared lock for FOPEN_DIRECT_IO when
FUSE_DIRECT_IO_ALLOW_MMAP is set and is also preparation
work for Amirs work on fuse-passthrough and also for
shared lock O_DIRECT and direct-IO code consolidation I have
patches for.

Patch 1/5 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 5/5 has a
dependency on it. Amir has also spotted a typo in the commit message
of the initial patch, which is corrected here.

Patches 2/5 and 3/5 add helper functions, which are needed by the
main patch (5/5) 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/5 allows to fail fuse_finish_open and is a preparation
to handle conflicting IO modes from the server side and will also be
needed for fuse passthrough.

Patch 5/5 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 a version is needed that includes this
pull request
https://github.com/libfuse/libfuse/pull/870

To: Miklos Szeredi <miklos@szeredi.hu>
Cc: linux-fsdevel@vger.kernel.org
Cc: Amir Goldstein <amir73il@gmail.com>
Cc: Bernd Schubert <bernd.schubert@fastmail.fm>

---
Changes in v2:
Amir:
- Added one more patch (4/5) "fuse: prepare for failing open response"
- Updated the 5/5 (previously 4/4) fuse: introduce inode io modes
    - Fix FOPEN_CACHE_IO release, release could have happened
      without being actually taken (error cases, directory, dax-inode)
    - fuse_file_io_open does not implicitly set FOPEN_DIRECT_IO anymore,
      but waits until concurrent shared-locked direct-io is done or
      switched an exclusive lock).

Amir Goldstein (2):
  fuse: prepare for failing open response
  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/dir.c             |   8 +-
 fs/fuse/file.c            | 339 ++++++++++++++++++++++++++++++++------
 fs/fuse/fuse_i.h          |  81 ++++++++-
 include/uapi/linux/fuse.h |   2 +
 4 files changed, 375 insertions(+), 55 deletions(-)

-- 
2.40.1


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2024-02-08  0:04 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-31 23:08 [PATCH v2 0/5] fuse: inode IO modes and mmap Bernd Schubert
2024-01-31 23:08 ` [PATCH v2 1/5] fuse: Fix VM_MAYSHARE and direct_io_allow_mmap Bernd Schubert
2024-02-01  8:45   ` Miklos Szeredi
2024-02-01 14:36     ` Bernd Schubert
2024-02-01 14:52       ` Miklos Szeredi
2024-02-01 15:39         ` Bernd Schubert
2024-02-01 15:43           ` Miklos Szeredi
2024-02-01 15:48             ` Amir Goldstein
2024-02-01 16:16               ` Bernd Schubert
2024-02-02 14:47             ` Bernd Schubert
2024-01-31 23:08 ` [PATCH v2 2/5] fuse: Create helper function if DIO write needs exclusive lock Bernd Schubert
2024-02-06  9:20   ` Jingbo Xu
2024-02-07 13:38     ` Bernd Schubert
2024-02-07 13:44       ` Jingbo Xu
2024-02-07 14:13         ` Bernd Schubert
2024-02-08  0:04           ` Jingbo Xu
2024-01-31 23:08 ` [PATCH v2 3/5] fuse: Add fuse_dio_lock/unlock helper functions Bernd Schubert
2024-01-31 23:08 ` [PATCH v2 4/5] fuse: prepare for failing open response Bernd Schubert
2024-02-01  9:23   ` Miklos Szeredi
2024-02-01 10:16     ` Amir Goldstein
2024-02-01 10:28       ` Miklos Szeredi
2024-02-01 10:41         ` Amir Goldstein
2024-02-01 10:51           ` Miklos Szeredi
2024-02-01 16:46             ` Amir Goldstein
2024-02-02 12:03               ` Amir Goldstein
2024-02-02 15:49                 ` Miklos Szeredi
2024-02-02 15:55   ` Miklos Szeredi
2024-02-02 16:07     ` Amir Goldstein
2024-01-31 23:08 ` [PATCH v2 5/5] fuse: introduce inode io modes Bernd Schubert
2024-02-01 14:47   ` Miklos Szeredi
2024-02-01 16:33     ` Amir Goldstein
2024-02-01 17:53       ` Bernd Schubert
2024-02-02 19:40         ` Amir Goldstein
2024-02-06 12:39       ` Amir Goldstein
2024-02-06 12:53         ` Miklos Szeredi
2024-02-06 13:07           ` Amir Goldstein
2024-02-01 10:30 ` [PATCH v2 0/5] fuse: inode IO modes and mmap Amir Goldstein
2024-02-01 14:30   ` Bernd Schubert
2024-02-01 15:56     ` Amir Goldstein
2024-02-01 16:01       ` Bernd Schubert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).