[Virtio-fs] Deleting files when using NFS as a shared folder

Gal Hammer ghammer at redhat.com
Mon Aug 2 10:18:13 UTC 2021


Hello,

When using NFS as a shared folder (mount type nfs4) with a Linux guest I
have the following issue:

Guest:
$ ls -la /mnt/shared
total 8
drwxr-xrwx.  2  135  135 4096 Aug  2 13:08 .
dr-xr-xr-x. 17 root   root    224 May 23 10:58 ..
-rw-r--rw-.  1  135  135   27 Aug  2 13:07 readme.txt

Host:
$ rm readme.txt

Guest:
$ ls -la /mnt/shared
total 8
drwxr-xrwx.  2  135  135 4096 Aug  2 13:10 .
dr-xr-xr-x. 17 root   root    224 May 23 10:58 ..
-rw-r--rw-.  1  135  135   27 Aug  2 13:07 .nfs0000000001b600d000000005

Guest:
$ cat /mnt/shared/readme.txt
This is a readme.txt file.

So it seems that the virtiofsd has a reference to the file which the guest
is not aware of and is unable to send a FUSE_FORGET message. This results
in a file not actually deleted (renamed to .nfsXXX) and is still accessible
by the guest.

I have a similar problem when deleting a file from a Windows guest side.
The FUSE_READDIR(PLUS) commands add a reference count to files which the OS
doesn't have a file context for. However I was able to solve it (for now?)
by keeping track of returned files' inodes.

Is this behaviour current and by design?

Thanks,

    Gal.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/virtio-fs/attachments/20210802/6638ccd6/attachment.htm>


More information about the Virtio-fs mailing list