[Virtio-fs] [PATCH for-5.2] virtiofsd: Announce submounts even without statx()
Max Reitz
mreitz at redhat.com
Wed Nov 11 12:07:47 UTC 2020
On 10.11.20 19:57, Dr. David Alan Gilbert wrote:
> * Max Reitz (mreitz at redhat.com) wrote:
>> Contrary to what the check (and warning) in lo_init() claims, we can
>> announce submounts just fine even without statx() -- the check is based
>> on comparing both the mount ID and st_dev of parent and child. Without
>> statx(), we will not have the mount ID; but we always have st_dev.
>>
>> The only problems we have (without statx() and its mount ID) are:
>>
>> (1) Mounting the same device twice may lead to both trees being treated
>> as exactly the same tree by virtiofsd. But that is a problem that
>> is completely independent of mirroring host submounts in the guest.
>> Both submount roots will still show the FUSE_SUBMOUNT flag, because
>> their st_dev still differs from their respective parent.
>>
>> (2) There is only one exception to (1), and that is if you mount a
>> device inside a mount of itself: Then, its st_dev will be the same
>> as that of its parent, and so without a mount ID, virtiofsd will not
>> be able to recognize the nested mount's root as a submount.
>> However, thanks to virtiofsd then treating both trees as exactly the
>> same tree, it will be caught up in a loop when the guest tries to
>> examine the nested submount, so the guest will always see nothing
>> but an ELOOP there. Therefore, this case is just fully broken
>> without statx(), whether we check for submounts (based on st_dev) or
>> not.
>>
>> All in all, checking for submounts works well even without comparing the
>> mount ID (i.e., without statx()). The only concern is an edge case
>> that, without statx() mount IDs, is utterly broken anyway.
>>
>> Thus, drop said check in lo_init().
>>
>> Reported-by: Miklos Szeredi <mszeredi at redhat.com>
>> Signed-off-by: Max Reitz <mreitz at redhat.com>
>
> OK, that seems to have been the outcome of the discussion here:
> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg00500.html
That’s right.
> so
>
>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert at redhat.com>
Thanks :)
Max
More information about the Virtio-fs
mailing list