Dave Chinner <david@xxxxxxxxxxxxx> writes: > On Sat, Sep 09, 2023 at 06:42:30PM -0400, Kent Overstreet wrote: >> On Sat, Sep 09, 2023 at 08:50:39AM -0400, James Bottomley wrote: >> > So why can't we figure out that easier way? What's wrong with trying to >> > figure out if we can do some sort of helper or library set that assists >> > supporting and porting older filesystems. If we can do that it will not >> > only make the job of an old fs maintainer a lot easier, but it might >> > just provide the stepping stones we need to encourage more people climb >> > up into the modern VFS world. >> >> What if we could run our existing filesystem code in userspace? > > You mean like lklfuse already enables? > > https://github.com/lkl/linux > > Looks like the upstream repo is currently based on 6.1, so there's > already a mechanism to use relatively recent kernel filesystem > implementations as a FUSE filesystem without needed to support a > userspace code base.... At a practical level I think it might be better to start with https://libguestfs.org/. The libguestfs code already has fuse support and already ships in common linux distros. If I read the documentation correctly libguestfs already has a mode where it runs an existing kernel under qemu to access any filesystem the kernel running in qemu supports. Unless I am misunderstanding something all that needs to happen with libguestfs is for someone to do the work to get userspace to mount external untrusted filesystems with it (by default), and for unprivileged containers to use it to mount filesystems the container would like to use. Be it libguestfs or lklfuse I think the real challenge is for someone to do all of the work so that whatever solution is chosen it is there in common situations (aka usb sticks and containers), the filesystems developers know it is there, and the security folks know it is there. For the long tail of rare filesystems simply having something that is the recommended way of using the filesystem and works without friction is the real challenge to get to. Eric