[Virtio-fs] when not to forget explicitly

Laszlo Ersek lersek at redhat.com
Sun Dec 6 10:46:30 UTC 2020


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?

I'd really appreciate an exhaustive list of request types that
auto-forget :)

Thank you!
Laszlo




More information about the Virtio-fs mailing list