[Virtio-fs] [RFC 2/2] virtiofsd: Set st_rdev for sub-mount points

Miklos Szeredi mszeredi at redhat.com
Thu May 7 11:43:56 UTC 2020


On Thu, May 7, 2020 at 12:56 PM Max Reitz <mreitz at redhat.com> wrote:
>
> On 06.05.20 18:04, Dr. David Alan Gilbert wrote:
> > * Max Reitz (mreitz at redhat.com) wrote:
> >> Whenever we encounter a directory with an st_dev that differs from that
> >> of its parent, we set st_rdev accordingly so the guest can create a
> >> submount for it.
> >>
> >> Make this behavior optional, so submounts are only announced to the
> >> guest with the announce_submounts option.  Some users may prefer the
> >> current behavior, so that the guest learns nothing about the host mount
> >> structure.
> >>
> >> Signed-off-by: Max Reitz <mreitz at redhat.com>
> >
> > Does this need to be wired to a flag in the INIT message (like say
> > FUSE_ASYNC_READ) to indicate that the kernel/daemon supports this, or is
> > it really safe just to start sending the changed rdev?
>
> I supposed it to be safe, given that rdev is never used for anything but
> device files, so basically it was just a reserved field for directories.

You assume only directories can be mounted, but that's not so.  A
device can also be the source or destination of a bind mount.

We need to extend fuse_entry_out with a flags field.  We could
possibly reuse the upper bits of entry_valid (i.e. timeouts above say
INT_MAX seconds could be taken as  "infinity").  Unfortunately that's
not as easy as splitting it into two fields due to endianness :(

Thanks,
Miklos





More information about the Virtio-fs mailing list