linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Joanne Koong <joannelkoong@gmail.com>
Cc: miklos@szeredi.hu, bernd@bsbernd.com, linux-xfs@vger.kernel.org,
	John@groves.net, linux-fsdevel@vger.kernel.org, neal@gompa.dev
Subject: Re: [PATCH 01/28] fuse: implement the basic iomap mechanisms
Date: Tue, 23 Sep 2025 15:10:14 -0700	[thread overview]
Message-ID: <20250923221014.GI8117@frogsfrogsfrogs> (raw)
In-Reply-To: <CAJnrk1aFEASvZmKftGpvR-P-KWMDLFYzjBCj4OF=EwteWmpECw@mail.gmail.com>

On Tue, Sep 23, 2025 at 02:24:21PM -0700, Joanne Koong wrote:
> On Tue, Sep 23, 2025 at 1:32 PM Darrick J. Wong <djwong@kernel.org> wrote:
> >
> > On Fri, Sep 19, 2025 at 03:36:52PM -0700, Joanne Koong wrote:
> > > On Mon, Sep 15, 2025 at 5:28 PM Darrick J. Wong <djwong@kernel.org> wrote:
> > > >
> > > > From: Darrick J. Wong <djwong@kernel.org>
> > > >
> > > > Implement functions to enable upcalling of iomap_begin and iomap_end to
> > > > userspace fuse servers.
> > > >
> > > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
> > > > ---
> > > >  fs/fuse/fuse_i.h          |   35 ++++
> > > >  fs/fuse/iomap_priv.h      |   36 ++++
> > > >  include/uapi/linux/fuse.h |   90 +++++++++
> > > >  fs/fuse/Kconfig           |   32 +++
> > > >  fs/fuse/Makefile          |    1
> > > >  fs/fuse/file_iomap.c      |  434 +++++++++++++++++++++++++++++++++++++++++++++
> > > >  fs/fuse/inode.c           |    9 +
> > > >  7 files changed, 636 insertions(+), 1 deletion(-)
> > > >  create mode 100644 fs/fuse/iomap_priv.h
> > > >  create mode 100644 fs/fuse/file_iomap.c
> > > >
> > > > new file mode 100644
> > > > index 00000000000000..243d92cb625095
> > > > --- /dev/null
> > > > +++ b/fs/fuse/iomap_priv.h
> > > > @@ -0,0 +1,36 @@
> > > > +// SPDX-License-Identifier: GPL-2.0
> > > > +/*
> > > > + * Copyright (C) 2025 Oracle.  All Rights Reserved.
> > > > + * Author: Darrick J. Wong <djwong@kernel.org>
> > > > + */
> > > > +#ifndef _FS_FUSE_IOMAP_PRIV_H
> > > > +#define _FS_FUSE_IOMAP_PRIV_H
> > > > +
> > > ...
> > > > diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
> > > > index 31b80f93211b81..3634cbe602cd9c 100644
> > > > --- a/include/uapi/linux/fuse.h
> > > > +++ b/include/uapi/linux/fuse.h
> > > > @@ -235,6 +235,9 @@
> > > >   *
> > > >   *  7.44
> > > >   *  - add FUSE_NOTIFY_INC_EPOCH
> > > > + *
> > > > + *  7.99
> > >
> > > Just curious, where did you get the .99 from?
> >
> > Any time I go adding to a versioned ABI, I try to use high numbers (and
> > high bits for flags) so that it's really obvious that the new flags are
> > in use when I poke through crash/gdb/etc.
> >
> > For permanent artifacts like an ondisk format, it's convenient to cache
> > fs images for fuzz testing, etc.  Using a high bit/number reduces the
> > chance that someone else's new feature will get merged and cause
> > conflicts, which force me to regenerate all cached images.
> >
> > Obviously at merge time I change these values to use lower bit positions
> > or version numbers to fit the merge target so it doesn't completely
> > eliminate the caching problems.
> 
> Ahh okay I see, thanks for the explanation!
> 
> >
> > > > + *  - add FUSE_IOMAP and iomap_{begin,end,ioend} for regular file operations
> > > >   */
> > > >
> > > >  #ifndef _LINUX_FUSE_H
> > > > @@ -270,7 +273,7 @@
> > > >  #define FUSE_KERNEL_VERSION 7
> > > > diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig
> > > > index 9563fa5387a241..67dfe300bf2e07 100644
> > > > --- a/fs/fuse/Kconfig
> > > > +++ b/fs/fuse/Kconfig
> > > > @@ -69,6 +69,38 @@ config FUSE_PASSTHROUGH
> > > > +config FUSE_IOMAP_DEBUG
> > > > +       bool "Debug FUSE file IO over iomap"
> > > > +       default n
> > > > +       depends on FUSE_IOMAP
> > > > +       help
> > > > +         Enable debugging assertions for the fuse iomap code paths and logging
> > > > +         of bad iomap file mapping data being sent to the kernel.
> > > > +
> > >
> > > I wonder if we should have a general FUSE_DEBUG that this would fall
> > > under instead of creating one that's iomap_debug specific
> >
> > Probably, but I was also trying to keep this as localized to iomap as
> > possible.  If Miklos would rather I extend it to all of fuse (which is
> > probably a good idea!) then I'm happy to do so.
> >
> > > >  config FUSE_IO_URING
> > > >         bool "FUSE communication over io-uring"
> > > >         default y
> > > > diff --git a/fs/fuse/Makefile b/fs/fuse/Makefile
> > > > index 46041228e5be2c..27be39317701d6 100644
> > > > --- a/fs/fuse/Makefile
> > > > +++ b/fs/fuse/Makefile
> > > > @@ -18,5 +18,6 @@ fuse-$(CONFIG_FUSE_PASSTHROUGH) += passthrough.o
> > > >  fuse-$(CONFIG_FUSE_BACKING) += backing.o
> > > >  fuse-$(CONFIG_SYSCTL) += sysctl.o
> > > >  fuse-$(CONFIG_FUSE_IO_URING) += dev_uring.o
> > > > +fuse-$(CONFIG_FUSE_IOMAP) += file_iomap.o
> > > >
> > > >  virtiofs-y := virtio_fs.o
> > > > diff --git a/fs/fuse/file_iomap.c b/fs/fuse/file_iomap.c
> > > > new file mode 100644
> > > > index 00000000000000..dda757768d3ea6
> > > > --- /dev/null
> > > > +++ b/fs/fuse/file_iomap.c
> > > > @@ -0,0 +1,434 @@
> > > > +// SPDX-License-Identifier: GPL-2.0
> > > > +/*
> > > > + * Copyright (C) 2025 Oracle.  All Rights Reserved.
> > > > + * Author: Darrick J. Wong <djwong@kernel.org>
> > > > + */
> > > > +#include <linux/iomap.h>
> > > > +#include "fuse_i.h"
> > > > +#include "fuse_trace.h"
> > > > +#include "iomap_priv.h"
> > > > +
> > > > +/* Validate FUSE_IOMAP_TYPE_* */
> > > > +static inline bool fuse_iomap_check_type(uint16_t fuse_type)
> > > > +{
> > > > +       switch (fuse_type) {
> > > > +       case FUSE_IOMAP_TYPE_HOLE:
> > > > +       case FUSE_IOMAP_TYPE_DELALLOC:
> > > > +       case FUSE_IOMAP_TYPE_MAPPED:
> > > > +       case FUSE_IOMAP_TYPE_UNWRITTEN:
> > > > +       case FUSE_IOMAP_TYPE_INLINE:
> > > > +       case FUSE_IOMAP_TYPE_PURE_OVERWRITE:
> > > > +               return true;
> > > > +       }
> > > > +
> > > > +       return false;
> > > > +}
> > >
> > > Maybe faster to check by using a bitmask instead?
> >
> > They're consecutive; one could #define a FUSE_IOMAP_TYPE_MAX to alias
> > PURE_OVERWRITE and collapse the whole check to:
> >
> >         return fuse_type <= FUSE_IOMAP_TYPE_MAX;
> >
> > > > +
> > > > diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
> > > > index 1e7298b2b89b58..32f4b7c9a20a8a 100644
> > > > --- a/fs/fuse/inode.c
> > > > +++ b/fs/fuse/inode.c
> > > > @@ -1448,6 +1448,13 @@ static void process_init_reply(struct fuse_mount *fm, struct fuse_args *args,
> > > >
> > > >                         if (flags & FUSE_REQUEST_TIMEOUT)
> > > >                                 timeout = arg->request_timeout;
> > > > +
> > > > +                       if ((flags & FUSE_IOMAP) && fuse_iomap_enabled()) {
> > > > +                               fc->local_fs = 1;
> > > > +                               fc->iomap = 1;
> > > > +                               printk(KERN_WARNING
> > > > + "fuse: EXPERIMENTAL iomap feature enabled.  Use at your own risk!");
> > > > +                       }
> > >
> > > pr_warn() seems to be the convention elsewhere in the fuse code
> >
> > Ah, thanks.  Do you know why fuse calls pr_warn("fuse: XXX") instead of
> > the usual sequence of
> >
> > #define pr_fmt(fmt) "fuse: " fmt
> >
> > so that "fuse: " gets included automatically?
> 
> I think it does do this, or at least that's what I see in fuse_i.h :D

Whoooops, sorry for the noise :)

--D

> Thanks,
> Joanne
> >
> > --D
> >
> > >
> > > Thanks,
> > > Joanne
> > > >                 } else {
> > > >                         ra_pages = fc->max_read / PAGE_SIZE;
> > > >                         fc->no_lock = 1;
> > > > @@ -1516,6 +1523,8 @@ static struct fuse_init_args *fuse_new_init(struct fuse_mount *fm)
> > > >          */
> > > >         if (fuse_uring_enabled())
> > > >                 flags |= FUSE_OVER_IO_URING;
> > > > +       if (fuse_iomap_enabled())
> > > > +               flags |= FUSE_IOMAP;
> > > >
> > > >         ia->in.flags = flags;
> > > >         ia->in.flags2 = flags >> 32;
> > > >
> > >

  reply	other threads:[~2025-09-23 22:10 UTC|newest]

Thread overview: 247+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-16  0:07 [RFC v5] fuse: containerize ext4 for safer operation Darrick J. Wong
2025-09-16  0:18 ` [PATCHSET RFC v5 1/8] fuse: general bug fixes Darrick J. Wong
2025-09-16  0:24   ` [PATCH 1/8] fuse: fix livelock in synchronous file put from fuseblk workers Darrick J. Wong
2025-09-23 10:57     ` Miklos Szeredi
2025-09-16  0:24   ` [PATCH 2/8] fuse: flush pending fuse events before aborting the connection Darrick J. Wong
2025-09-23 11:11     ` Miklos Szeredi
2025-09-23 14:54       ` Darrick J. Wong
2025-09-23 18:56         ` Miklos Szeredi
2025-09-23 20:59           ` Darrick J. Wong
2025-09-23 22:34             ` Darrick J. Wong
2025-09-24 12:04               ` Miklos Szeredi
2025-09-24 17:50                 ` Darrick J. Wong
2025-09-24 18:19                   ` Miklos Szeredi
2025-09-24 20:54                     ` Darrick J. Wong
2025-09-30 10:29                       ` Miklos Szeredi
2025-09-30 17:56                         ` Darrick J. Wong
2025-09-16  0:24   ` [PATCH 3/8] fuse: capture the unique id of fuse commands being sent Darrick J. Wong
2025-09-23 10:58     ` Miklos Szeredi
2025-09-16  0:25   ` [PATCH 4/8] fuse: signal that a fuse filesystem should exhibit local fs behaviors Darrick J. Wong
2025-09-17 17:18     ` Joanne Koong
2025-09-18 16:52       ` Darrick J. Wong
2025-09-19  9:24         ` Miklos Szeredi
2025-09-19 17:50           ` Darrick J. Wong
2025-09-23 14:57             ` Miklos Szeredi
2025-09-23 20:51               ` Darrick J. Wong
2025-09-24 13:55                 ` Miklos Szeredi
2025-09-24 17:31                   ` Darrick J. Wong
2025-09-25 19:17                     ` Darrick J. Wong
2025-09-16  0:25   ` [PATCH 5/8] fuse: implement file attributes mask for statx Darrick J. Wong
2025-09-16  0:25   ` [PATCH 6/8] fuse: update file mode when updating acls Darrick J. Wong
2025-09-16  0:25   ` [PATCH 7/8] fuse: propagate default and file acls on creation Darrick J. Wong
2025-09-16  6:41     ` Chen Linxuan
2025-09-16 14:48       ` Darrick J. Wong
2025-09-16  0:26   ` [PATCH 8/8] fuse: enable FUSE_SYNCFS for all fuseblk servers Darrick J. Wong
2025-09-23 10:58     ` Miklos Szeredi
2025-09-16  0:18 ` [PATCHSET RFC v5 2/8] iomap: cleanups ahead of adding fuse support Darrick J. Wong
2025-09-16  0:26   ` [PATCH 1/2] iomap: trace iomap_zero_iter zeroing activities Darrick J. Wong
2025-09-16 13:49     ` Christoph Hellwig
2025-09-16 14:49       ` Darrick J. Wong
2025-09-16  0:26   ` [PATCH 2/2] iomap: error out on file IO when there is no inline_data buffer Darrick J. Wong
2025-09-16 13:50     ` Christoph Hellwig
2025-09-16 14:50       ` Darrick J. Wong
2025-09-16  0:18 ` [PATCHSET RFC v5 3/8] fuse: cleanups ahead of adding fuse support Darrick J. Wong
2025-09-16  0:26   ` [PATCH 1/5] fuse: allow synchronous FUSE_INIT Darrick J. Wong
2025-09-17 17:22     ` Joanne Koong
2025-09-18 18:04       ` Darrick J. Wong
2025-09-16  0:27   ` [PATCH 2/5] fuse: move the backing file idr and code into a new source file Darrick J. Wong
2025-09-25 14:11     ` Miklos Szeredi
2025-09-16  0:27   ` [PATCH 3/5] fuse: move the passthrough-specific code back to passthrough.c Darrick J. Wong
2025-09-17  2:47     ` Amir Goldstein
2025-09-18 18:02       ` Darrick J. Wong
2025-09-19  7:34         ` Miklos Szeredi
2025-09-19  9:36           ` Amir Goldstein
2025-09-19 17:43           ` Darrick J. Wong
2025-09-16  0:27   ` [PATCH 4/5] fuse_trace: " Darrick J. Wong
2025-09-16  0:27   ` [PATCH 5/5] fuse: move CREATE_TRACE_POINTS to a separate file Darrick J. Wong
2025-09-25 14:25     ` Miklos Szeredi
2025-09-16  0:19 ` [PATCHSET RFC v5 4/8] fuse: allow servers to use iomap for better file IO performance Darrick J. Wong
2025-09-16  0:28   ` [PATCH 01/28] fuse: implement the basic iomap mechanisms Darrick J. Wong
2025-09-19 22:36     ` Joanne Koong
2025-09-23 20:32       ` Darrick J. Wong
2025-09-23 21:24         ` Joanne Koong
2025-09-23 22:10           ` Darrick J. Wong [this message]
2025-09-23 23:08             ` Darrick J. Wong
2025-09-16  0:28   ` [PATCH 02/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:28   ` [PATCH 03/28] fuse: make debugging configurable at runtime Darrick J. Wong
2025-09-16  0:29   ` [PATCH 04/28] fuse: adapt FUSE_DEV_IOC_BACKING_{OPEN,CLOSE} to add new iomap devices Darrick J. Wong
2025-09-17  3:09     ` Amir Goldstein
2025-09-18 18:17       ` Darrick J. Wong
2025-09-18 18:42         ` Amir Goldstein
2025-09-18 19:03           ` Darrick J. Wong
2025-09-19  7:13           ` Miklos Szeredi
2025-09-19  9:54             ` Amir Goldstein
2025-09-19 17:42               ` Darrick J. Wong
2025-09-23  7:10                 ` Miklos Szeredi
2025-09-16  0:29   ` [PATCH 05/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:29   ` [PATCH 06/28] fuse: flush events and send FUSE_SYNCFS and FUSE_DESTROY on unmount Darrick J. Wong
2025-09-16  0:29   ` [PATCH 07/28] fuse: create a per-inode flag for toggling iomap Darrick J. Wong
2025-09-16  0:30   ` [PATCH 08/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:30   ` [PATCH 09/28] fuse: isolate the other regular file IO paths from iomap Darrick J. Wong
2025-09-16  0:30   ` [PATCH 10/28] fuse: implement basic iomap reporting such as FIEMAP and SEEK_{DATA,HOLE} Darrick J. Wong
2025-09-16  0:30   ` [PATCH 11/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:31   ` [PATCH 12/28] fuse: implement direct IO with iomap Darrick J. Wong
2025-09-16  0:31   ` [PATCH 13/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:31   ` [PATCH 14/28] fuse: implement buffered " Darrick J. Wong
2025-09-16  0:31   ` [PATCH 15/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:32   ` [PATCH 16/28] fuse: implement large folios for iomap pagecache files Darrick J. Wong
2025-09-16  0:32   ` [PATCH 17/28] fuse: use an unrestricted backing device with iomap pagecache io Darrick J. Wong
2025-09-16  0:32   ` [PATCH 18/28] fuse: advertise support for iomap Darrick J. Wong
2025-09-16  0:32   ` [PATCH 19/28] fuse: query filesystem geometry when using iomap Darrick J. Wong
2025-09-16  0:33   ` [PATCH 20/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:33   ` [PATCH 21/28] fuse: implement fadvise for iomap files Darrick J. Wong
2025-09-16  0:33   ` [PATCH 22/28] fuse: invalidate ranges of block devices being used for iomap Darrick J. Wong
2025-09-16  0:33   ` [PATCH 23/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:34   ` [PATCH 24/28] fuse: implement inline data file IO via iomap Darrick J. Wong
2025-09-16  0:34   ` [PATCH 25/28] fuse_trace: " Darrick J. Wong
2025-09-16  0:34   ` [PATCH 26/28] fuse: allow more statx fields Darrick J. Wong
2025-09-16  0:35   ` [PATCH 27/28] fuse: support atomic writes with iomap Darrick J. Wong
2025-09-16  0:35   ` [PATCH 28/28] fuse: disable direct reclaim for any fuse server that uses iomap Darrick J. Wong
2025-09-16  0:19 ` [PATCHSET RFC v5 5/8] fuse: allow servers to specify root node id Darrick J. Wong
2025-09-16  0:35   ` [PATCH 1/3] fuse: make the root nodeid dynamic Darrick J. Wong
2025-09-16  0:35   ` [PATCH 2/3] fuse_trace: " Darrick J. Wong
2025-09-16  0:36   ` [PATCH 3/3] fuse: allow setting of root nodeid Darrick J. Wong
2025-09-16  0:19 ` [PATCHSET RFC v5 6/8] fuse: handle timestamps and ACLs correctly when iomap is enabled Darrick J. Wong
2025-09-16  0:36   ` [PATCH 1/9] fuse: enable caching of timestamps Darrick J. Wong
2025-09-16  0:36   ` [PATCH 2/9] fuse: force a ctime update after a fileattr_set call when in iomap mode Darrick J. Wong
2025-09-16  0:36   ` [PATCH 3/9] fuse: allow local filesystems to set some VFS iflags Darrick J. Wong
2025-09-16  0:37   ` [PATCH 4/9] fuse_trace: " Darrick J. Wong
2025-09-16  0:37   ` [PATCH 5/9] fuse: cache atime when in iomap mode Darrick J. Wong
2025-09-16  0:37   ` [PATCH 6/9] fuse: let the kernel handle KILL_SUID/KILL_SGID for iomap filesystems Darrick J. Wong
2025-09-16  0:37   ` [PATCH 7/9] fuse_trace: " Darrick J. Wong
2025-09-16  0:38   ` [PATCH 8/9] fuse: update ctime when updating acls on an iomap inode Darrick J. Wong
2025-09-16  0:38   ` [PATCH 9/9] fuse: always cache ACLs when using iomap Darrick J. Wong
2025-09-16  0:19 ` [PATCHSET RFC v5 7/8] fuse: cache iomap mappings for even better file IO performance Darrick J. Wong
2025-09-16  0:38   ` [PATCH 01/10] fuse: cache iomaps Darrick J. Wong
2025-09-16  0:38   ` [PATCH 02/10] fuse_trace: " Darrick J. Wong
2025-09-16  0:39   ` [PATCH 03/10] fuse: use the iomap cache for iomap_begin Darrick J. Wong
2025-09-16  0:39   ` [PATCH 04/10] fuse_trace: " Darrick J. Wong
2025-09-16  0:39   ` [PATCH 05/10] fuse: invalidate iomap cache after file updates Darrick J. Wong
2025-09-16  0:39   ` [PATCH 06/10] fuse_trace: " Darrick J. Wong
2025-09-16  0:40   ` [PATCH 07/10] fuse: enable iomap cache management Darrick J. Wong
2025-09-16  0:40   ` [PATCH 08/10] fuse_trace: " Darrick J. Wong
2025-09-16  0:40   ` [PATCH 09/10] fuse: overlay iomap inode info in struct fuse_inode Darrick J. Wong
2025-09-16  0:41   ` [PATCH 10/10] fuse: enable iomap Darrick J. Wong
2025-09-16  0:20 ` [PATCHSET RFC v5 8/8] fuse: run fuse servers as a contained service Darrick J. Wong
2025-09-16  0:41   ` [PATCH 1/2] fuse: allow privileged mount helpers to pre-approve iomap usage Darrick J. Wong
2025-09-16  0:41   ` [PATCH 2/2] fuse: set iomap backing device block size Darrick J. Wong
2025-09-16  0:20 ` [PATCHSET RFC v5 1/6] libfuse: general bug fixes Darrick J. Wong
2025-09-16  0:41   ` [PATCH 1/1] libfuse: don't put HAVE_STATX in a public header Darrick J. Wong
2025-09-16 14:38     ` Bernd Schubert
2025-09-16 16:16       ` Darrick J. Wong
2025-09-16  0:20 ` [PATCHSET RFC v5 2/6] libfuse: allow servers to use iomap for better file IO performance Darrick J. Wong
2025-09-16  0:42   ` [PATCH 01/18] libfuse: bump kernel and library ABI versions Darrick J. Wong
2025-09-16  0:42   ` [PATCH 02/18] libfuse: add kernel gates for FUSE_IOMAP Darrick J. Wong
2025-09-16  0:42   ` [PATCH 03/18] libfuse: add fuse commands for iomap_begin and end Darrick J. Wong
2025-09-16  0:42   ` [PATCH 04/18] libfuse: add upper level iomap commands Darrick J. Wong
2025-09-16  0:43   ` [PATCH 05/18] libfuse: add a lowlevel notification to add a new device to iomap Darrick J. Wong
2025-09-16  0:43   ` [PATCH 06/18] libfuse: add upper-level iomap add device function Darrick J. Wong
2025-09-16  0:43   ` [PATCH 07/18] libfuse: add iomap ioend low level handler Darrick J. Wong
2025-09-16  0:43   ` [PATCH 08/18] libfuse: add upper level iomap ioend commands Darrick J. Wong
2025-09-16  0:44   ` [PATCH 09/18] libfuse: add a reply function to send FUSE_ATTR_* to the kernel Darrick J. Wong
2025-09-16  0:44   ` [PATCH 10/18] libfuse: connect high level fuse library to fuse_reply_attr_iflags Darrick J. Wong
2025-09-16  0:44   ` [PATCH 11/18] libfuse: support direct I/O through iomap Darrick J. Wong
2025-09-16  0:44   ` [PATCH 12/18] libfuse: don't allow hardlinking of iomap files in the upper level fuse library Darrick J. Wong
2025-09-16  0:45   ` [PATCH 13/18] libfuse: allow discovery of the kernel's iomap capabilities Darrick J. Wong
2025-09-16  0:45   ` [PATCH 14/18] libfuse: add lower level iomap_config implementation Darrick J. Wong
2025-09-16  0:45   ` [PATCH 15/18] libfuse: add upper " Darrick J. Wong
2025-09-16  0:45   ` [PATCH 16/18] libfuse: add low level code to invalidate iomap block device ranges Darrick J. Wong
2025-09-16  0:46   ` [PATCH 17/18] libfuse: add upper-level API to invalidate parts of an iomap block device Darrick J. Wong
2025-09-16  0:46   ` [PATCH 18/18] libfuse: add atomic write support Darrick J. Wong
2025-09-16  0:20 ` [PATCHSET RFC v5 3/6] libfuse: allow servers to specify root node id Darrick J. Wong
2025-09-16  0:46   ` [PATCH 1/1] libfuse: allow root_nodeid mount option Darrick J. Wong
2025-09-16  0:21 ` [PATCHSET RFC v5 4/6] libfuse: implement syncfs Darrick J. Wong
2025-09-16  0:46   ` [PATCH 1/4] libfuse: add strictatime/lazytime mount options Darrick J. Wong
2025-09-16  0:47   ` [PATCH 2/4] libfuse: set sync, immutable, and append when loading files Darrick J. Wong
2025-09-16  0:47   ` [PATCH 3/4] libfuse: wire up FUSE_SYNCFS to the low level library Darrick J. Wong
2025-09-16  0:47   ` [PATCH 4/4] libfuse: add syncfs support to the upper library Darrick J. Wong
2025-09-16  0:21 ` [PATCHSET RFC v5 5/6] libfuse: cache iomap mappings for even better file IO performance Darrick J. Wong
2025-09-16  0:48   ` [PATCH 1/3] libfuse: enable iomap cache management for lowlevel fuse Darrick J. Wong
2025-09-16  0:48   ` [PATCH 2/3] libfuse: add upper-level iomap cache management Darrick J. Wong
2025-09-16  0:48   ` [PATCH 3/3] libfuse: enable iomap Darrick J. Wong
2025-09-16  0:21 ` [PATCHSET RFC v5 6/6] libfuse: run fuse servers as a contained service Darrick J. Wong
2025-09-16  0:48   ` [PATCH 1/4] libfuse: add systemd/inetd socket service mounting helper Darrick J. Wong
2025-09-16  0:49   ` [PATCH 2/4] libfuse: integrate fuse services into mount.fuse3 Darrick J. Wong
2025-09-16  0:49   ` [PATCH 3/4] libfuse: delegate iomap privilege from mount.service to fuse services Darrick J. Wong
2025-09-16  0:49   ` [PATCH 4/4] libfuse: enable setting iomap block device block size Darrick J. Wong
2025-09-16  0:22 ` [PATCHSET RFC v5 2/9] fuse4fs: fork a low level fuse server Darrick J. Wong
2025-09-16  0:50   ` [PATCH 01/21] fuse2fs: separate libfuse3 and fuse2fs detection in configure Darrick J. Wong
2025-09-16  0:51   ` [PATCH 02/21] fuse2fs: start porting fuse2fs to lowlevel libfuse API Darrick J. Wong
2025-09-16  0:51   ` [PATCH 03/21] debian: create new package for fuse4fs Darrick J. Wong
2025-09-16  0:51   ` [PATCH 04/21] fuse4fs: namespace some helpers Darrick J. Wong
2025-09-16  0:51   ` [PATCH 05/21] fuse4fs: convert to low level API Darrick J. Wong
2025-09-16  0:52   ` [PATCH 06/21] libsupport: port the kernel list.h to libsupport Darrick J. Wong
2025-09-16  0:52   ` [PATCH 07/21] libsupport: add a cache Darrick J. Wong
2025-09-16  0:52   ` [PATCH 08/21] cache: disable debugging Darrick J. Wong
2025-09-16  0:53   ` [PATCH 09/21] cache: use modern list iterator macros Darrick J. Wong
2025-09-16  0:53   ` [PATCH 10/21] cache: embed struct cache in the owner Darrick J. Wong
2025-09-16  0:53   ` [PATCH 11/21] cache: pass cache pointer to callbacks Darrick J. Wong
2025-09-16  0:53   ` [PATCH 12/21] cache: pass a private data pointer through cache_walk Darrick J. Wong
2025-09-16  0:54   ` [PATCH 13/21] cache: add a helper to grab a new refcount for a cache_node Darrick J. Wong
2025-09-16  0:54   ` [PATCH 14/21] cache: return results of a cache flush Darrick J. Wong
2025-09-16  0:54   ` [PATCH 15/21] cache: add a "get only if incore" flag to cache_node_get Darrick J. Wong
2025-09-16  0:54   ` [PATCH 16/21] cache: support gradual expansion Darrick J. Wong
2025-09-16  0:55   ` [PATCH 17/21] cache: implement automatic shrinking Darrick J. Wong
2025-09-16  0:55   ` [PATCH 18/21] fuse4fs: add cache to track open files Darrick J. Wong
2025-09-16  0:55   ` [PATCH 19/21] fuse4fs: use the orphaned inode list Darrick J. Wong
2025-09-16  0:55   ` [PATCH 20/21] fuse4fs: implement FUSE_TMPFILE Darrick J. Wong
2025-09-16  0:56   ` [PATCH 21/21] fuse4fs: create incore reverse orphan list Darrick J. Wong
2025-09-16  0:22 ` [PATCHSET RFC v5 3/9] libext2fs: refactoring for fuse2fs iomap support Darrick J. Wong
2025-09-16  0:56   ` [PATCH 01/10] libext2fs: make it possible to extract the fd from an IO manager Darrick J. Wong
2025-09-16  0:56   ` [PATCH 02/10] libext2fs: always fsync the device when flushing the cache Darrick J. Wong
2025-09-16  0:56   ` [PATCH 03/10] libext2fs: always fsync the device when closing the unix IO manager Darrick J. Wong
2025-09-16  0:57   ` [PATCH 04/10] libext2fs: only fsync the unix fd if we wrote to the device Darrick J. Wong
2025-09-16  0:57   ` [PATCH 05/10] libext2fs: invalidate cached blocks when freeing them Darrick J. Wong
2025-09-16  0:57   ` [PATCH 06/10] libext2fs: only flush affected blocks in unix_write_byte Darrick J. Wong
2025-09-16  0:57   ` [PATCH 07/10] libext2fs: allow unix_write_byte when the write would be aligned Darrick J. Wong
2025-09-16  0:58   ` [PATCH 08/10] libext2fs: allow clients to ask to write full superblocks Darrick J. Wong
2025-09-16  0:58   ` [PATCH 09/10] libext2fs: allow callers to disallow I/O to file data blocks Darrick J. Wong
2025-09-16  0:58   ` [PATCH 10/10] libext2fs: add posix advisory locking to the unix IO manager Darrick J. Wong
2025-10-08 22:09     ` Darrick J. Wong
2025-09-16  0:22 ` [PATCHSET RFC v5 4/9] fuse2fs: use fuse iomap data paths for better file I/O performance Darrick J. Wong
2025-09-16  0:58   ` [PATCH 01/17] fuse2fs: implement bare minimum iomap for file mapping reporting Darrick J. Wong
2025-09-16  0:59   ` [PATCH 02/17] fuse2fs: add iomap= mount option Darrick J. Wong
2025-09-16  0:59   ` [PATCH 03/17] fuse2fs: implement iomap configuration Darrick J. Wong
2025-09-16  0:59   ` [PATCH 04/17] fuse2fs: register block devices for use with iomap Darrick J. Wong
2025-09-16  1:00   ` [PATCH 05/17] fuse2fs: implement directio file reads Darrick J. Wong
2025-09-16  1:00   ` [PATCH 06/17] fuse2fs: add extent dump function for debugging Darrick J. Wong
2025-09-16  1:00   ` [PATCH 07/17] fuse2fs: implement direct write support Darrick J. Wong
2025-09-16  1:00   ` [PATCH 08/17] fuse2fs: turn on iomap for pagecache IO Darrick J. Wong
2025-09-16  1:01   ` [PATCH 09/17] fuse2fs: don't zero bytes in punch hole Darrick J. Wong
2025-09-16  1:01   ` [PATCH 10/17] fuse2fs: don't do file data block IO when iomap is enabled Darrick J. Wong
2025-09-16  1:01   ` [PATCH 11/17] fuse2fs: avoid fuseblk mode if fuse-iomap support is likely Darrick J. Wong
2025-09-16  1:01   ` [PATCH 12/17] fuse2fs: enable file IO to inline data files Darrick J. Wong
2025-09-16  1:02   ` [PATCH 13/17] fuse2fs: set iomap-related inode flags Darrick J. Wong
2025-09-16  1:02   ` [PATCH 14/17] fuse2fs: configure block device block size Darrick J. Wong
2025-09-16  1:02   ` [PATCH 15/17] fuse4fs: separate invalidation Darrick J. Wong
2025-09-16  1:02   ` [PATCH 16/17] fuse2fs: implement statx Darrick J. Wong
2025-09-16  1:03   ` [PATCH 17/17] fuse2fs: enable atomic writes Darrick J. Wong
2025-09-16  0:22 ` [PATCHSET RFC v5 5/9] fuse4fs: specify the root node id Darrick J. Wong
2025-09-16  1:03   ` [PATCH 1/1] fuse4fs: don't use inode number translation when possible Darrick J. Wong
2025-09-16  0:23 ` [PATCHSET RFC v5 6/9] fuse2fs: handle timestamps and ACLs correctly when iomap is enabled Darrick J. Wong
2025-09-16  1:03   ` [PATCH 01/10] fuse2fs: add strictatime/lazytime mount options Darrick J. Wong
2025-09-16  1:03   ` [PATCH 02/10] fuse2fs: skip permission checking on utimens when iomap is enabled Darrick J. Wong
2025-09-16  1:04   ` [PATCH 03/10] fuse2fs: let the kernel tell us about acl/mode updates Darrick J. Wong
2025-09-16  1:04   ` [PATCH 04/10] fuse2fs: better debugging for file mode updates Darrick J. Wong
2025-09-16  1:04   ` [PATCH 05/10] fuse2fs: debug timestamp updates Darrick J. Wong
2025-09-16  1:05   ` [PATCH 06/10] fuse2fs: use coarse timestamps for iomap mode Darrick J. Wong
2025-09-16  1:05   ` [PATCH 07/10] fuse2fs: add tracing for retrieving timestamps Darrick J. Wong
2025-09-16  1:05   ` [PATCH 08/10] fuse2fs: enable syncfs Darrick J. Wong
2025-09-16  1:05   ` [PATCH 09/10] fuse2fs: skip the gdt write in op_destroy if syncfs is working Darrick J. Wong
2025-09-16  1:06   ` [PATCH 10/10] fuse2fs: set sync, immutable, and append at file load time Darrick J. Wong
2025-09-16  0:23 ` [PATCHSET RFC v5 7/9] fuse2fs: cache iomap mappings for even better file IO performance Darrick J. Wong
2025-09-16  1:06   ` [PATCH 1/3] fuse2fs: enable caching of iomaps Darrick J. Wong
2025-09-16  1:06   ` [PATCH 2/3] fuse2fs: be smarter about caching iomaps Darrick J. Wong
2025-09-16  1:06   ` [PATCH 3/3] fuse2fs: enable iomap Darrick J. Wong
2025-09-16  0:23 ` [PATCHSET RFC v5 8/9] fuse2fs: improve block and inode caching Darrick J. Wong
2025-09-16  1:07   ` [PATCH 1/6] libsupport: add caching IO manager Darrick J. Wong
2025-09-16  1:07   ` [PATCH 2/6] iocache: add the actual buffer cache Darrick J. Wong
2025-09-16  1:07   ` [PATCH 3/6] iocache: bump buffer mru priority every 50 accesses Darrick J. Wong
2025-09-16  1:07   ` [PATCH 4/6] fuse2fs: enable caching IO manager Darrick J. Wong
2025-09-16  1:08   ` [PATCH 5/6] fuse2fs: increase inode cache size Darrick J. Wong
2025-09-16  1:08   ` [PATCH 6/6] libext2fs: improve caching for inodes Darrick J. Wong
2025-09-16  0:24 ` [PATCHSET RFC v5 9/9] fuse4fs: run servers as a contained service Darrick J. Wong
2025-09-16  1:08   ` [PATCH 1/4] libext2fs: fix MMP code to work with unixfd IO manager Darrick J. Wong
2025-09-16  1:08   ` [PATCH 2/4] fuse4fs: enable safe service mode Darrick J. Wong
2025-09-16  1:09   ` [PATCH 3/4] fuse4fs: set proc title when in fuse " Darrick J. Wong
2025-09-16  1:09   ` [PATCH 4/4] fuse4fs: set iomap backing device blocksize Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250923221014.GI8117@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=John@groves.net \
    --cc=bernd@bsbernd.com \
    --cc=joannelkoong@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=neal@gompa.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).