Re: [PATCH V11 0/9] famfs: port into fuse
From: Miklos Szeredi
Date: Thu Jul 23 2026 - 03:34:42 EST
On Wed, 22 Jul 2026 at 16:43, Joanne Koong <joannelkoong@xxxxxxxxx> wrote:
> I had the same impression as Amir. The FUSE_DEV_IOC_STRIPE_OPEN patch
> [1] right now is only for the interleaved case to handle striping, but
> imo it seems a lot cleaner to make FUSE_DEV_IOC_STRIPE_OPEN a generic
> interface for handling any backing layout that corresponds to a
> backing id, and having the simple extent case go through this same
> infrastructure / path. Especially since John's future patches for
> adding the interleaving will go through the ioctl, it seems nicer
> server-side as well for famfs to have one consolidated path instead of
> needing two totally different ones.
That's a valid point, but I still feel that those things are different.
Striping:
- always static
- size limited by the number of devices
Extent map:
- may be static (famfs) or dynamic (general block fs)
- size is unlimited
Doing extent maps with an ioctl makes it clunky in the dynamic/unlimited case.
> If not the ioctl, what did you have in mind for a generic interface? I
> think anything else would have to keep GET_FMAP, but maybe I'm wrong
> here.
Good question. A NOTIFY_EXTENT_MAP (similar to Darrick's
FUSE_NOTIFY_IOMAP_UPSERT, but multiple extents) would work, I think.
Maybe the striping setup can also be done with a notification. The
original reason for doing FUSE_DEV_IOC_BACKING_OPEN() out of band was
to prevent security issues with writing an fd with plain write()
syscalls. This issue does not affect io-uring, which does not use
write and so the ioctl can be completely eliminated. But that's
another story..
Thanks,
Miklos