On Tue, 9 Jul 2024 at 13:19, Hanna Czenczek <hreitz@xxxxxxxxxx> wrote: > > Hi, > > We want to be able to mount filesystems that just consist of one regular > file via virtio-fs, i.e. no root directory, just a file as the root > node. > > While that is possible via FUSE itself (through the 'rootmode' mount > option, which is automatically set by the fusermount help program to > match the mount point's inode mode), there is no virtio-fs option yet > that would allow changing the rootmode from S_IFDIR to S_IFREG. > > To do that, this series introduces a new 'file' mount option that does > precisely that. Alternatively, we could provide the same 'rootmode' > option that FUSE has, but as laid out in patch 1's commit description, > that option is a bit cumbersome for virtio-fs (in a way that it is not > for FUSE), and its usefulness as a more general option is limited. I wonder if this is needed at all for virtiofs, which could easily do the FUSE_INIT request synchronously with mount(2) and the server could just tell the client the root mode explicitly in the FUSE_INIT reply, or could just fetch it with a separate FUSE_GETATTR. Why regular fuse doesn't do this? That's because a single threaded server can only be supported if the mount(2) syscall returns before any request need processing. Virtiofs doesn't suffer from this at all, AFAICS. Does this make sense? Thanks, Miklos