[Virtio-fs] when not to forget explicitly
Miklos Szeredi
mszeredi at redhat.com
Mon Dec 7 08:26:31 UTC 2020
On Sun, Dec 6, 2020 at 11:46 AM Laszlo Ersek <lersek at redhat.com> wrote:
>
> Hi Miklos,
>
> what FUSE requests are those after which the client is not supposed to
> ask the server to forget a nodeid?
>
> I'm surprised to see the following comment in
> "tools/virtiofsd/passthrough_ll.c", in "struct lo_inode":
>
> /*
> * This counter keeps the inode alive during the FUSE session.
> * Incremented when the FUSE inode number is sent in a reply
> * (FUSE_LOOKUP, FUSE_READDIRPLUS, etc). Decremented when an inode is
> * released by requests like FUSE_FORGET, FUSE_RMDIR, FUSE_RENAME, etc.
> *
> * Note that this value is untrusted because the client can manipulate
> * it arbitrarily using FUSE_FORGET requests.
> *
> * Protected by lo->mutex.
> */
> uint64_t nlookup;
>
> I can identify the places in my FUSE client code where I learn of a new
> inode, but I can't tell what requests include an automatic "forget".
>
> The above mentions FUSE_RMDIR, which I didn't expect. I guess it also
> applies to FUSE_UNLINK. Is there anything else?
Nope, the comment is wrong. It is only decremented on FUSE_FORGET.
Thanks,
Miklos
More information about the Virtio-fs
mailing list