[Virtio-fs] Query about announce_submounts and ro/rw mounts
Max Reitz
mreitz at redhat.com
Thu Mar 4 16:58:55 UTC 2021
On 04.03.21 17:39, Dr. David Alan Gilbert wrote:
> * Max Reitz (mreitz at redhat.com) wrote:
>> On 03.03.21 19:20, Vivek Goyal wrote:
>>> Hi Max,
>>
>> Hi Vivek,
>>
>>> I was playing with "announce_submounts". I have a read-only bind mounted
>>> mount point in shared directory. Inside guest, when I step into that
>>> directory, I see that a mount point got created but its "rw" and not "ro".
>>>
>>> Is that intentional.
>>
>> No, that isn’t intentional. I just didn’t think of sharing such information
>> with the guest.
>>
>>> Can we send property of mount also to guest when
>>> notifying guest about mount point.
>>
>> I suppose we can send it (by adding a new flag alongside
>> FUSE_ATTR_SUBMOUNT), and we can make the mount ro by setting the SB_RDONLY
>> flag in fuse_dentry_automount().
>>
>> If we implemented this for RDONLY, are there other flags that we might want
>> to consider as well? (e.g. nodev etc.)
>>
>> OTOH, I just tested NFS, and it doesn’t pass through the RO flag:
>>
>> [...]
>> /tmp/xfs.img on ~/tmp/test-nfs/mount type xfs (ro,...)
>> [...]
>> 127.0.0.1:~/tmp/test-nfs on /mnt/tmp type nfs4 (rw,...)
>> 127.0.0.1:~/tmp/test-nfs/mount on /mnt/tmp/mount type nfs4 (rw,...)
>>
>> So is it really important or more a matter of style?
>
> So what happens if you try and write a file in /mnt/tmp/mount ?
Well, the EROFS gets passed through from host to client:
$ LANG=C sudo touch /mnt/tmp/mount/foo
touch: cannot touch '/mnt/tmp/mount/foo': Read-only file system
$ mount
[...]
127.0.0.1:~/tmp/test-nfs on /mnt/tmp type nfs4 (rw,...)
127.0.0.1:~/tmp/test-nfs/mount on /mnt/tmp/mount type nfs4 (rw,...)
(So the submount still appears rw – NFS doesn’t reevaluate when it
receives EROFS.)
On virtio-fs, it’s the same:
$ LANG=C sudo touch /mnt/mnt1
touch: cannot touch '/mnt/mnt1/foo': Read-only file system
$ mount
[...]
host on /mnt type virtiofs (rw,relatime)
none on /mnt/mnt1 type virtiofs (rw,relatime)
Max
More information about the Virtio-fs
mailing list