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? bcachefs has a shim layer (like xfs, but more extensive) to run nearly the entire filesystem - about 90% by loc - in userspace. Right now this is used for e.g. userspace fsck, but one of my goals is to have the entire filesystem available as a FUSE filesystem. I'd been planning on doing the fuse port as a straight fuse implementation, but OTOH if we attempted a sh vfs iops/aops/etc. -> fuse shim, then we would have pretty much everything we need to run any existing fs (e.g. reiserfs) as a fuse filesystem. It'd be a nontrivial project with some open questions (e.g. do we have to lift all of bufferheads to userspace?) but it seems worth investigating.