On Wed, 11 Oct 2023 at 18:32, Krister Johansen <kjlx@xxxxxxxxxxxxxxxxxx> wrote: > > On Wed, Oct 11, 2023 at 09:07:33AM +0200, Miklos Szeredi wrote: > > On Wed, 11 Oct 2023 at 03:26, Krister Johansen <kjlx@xxxxxxxxxxxxxxxxxx> wrote: > > > > > I am curious what you have in mind in order to move this towards a > > > proper fix? I shied away from the approach of stealing a nlookup from > > > mp_fi beacuse it wasn't clear that I could always count on the nlookup > > > in the parent staying positive. E.g. I was afraid I was either going to > > > not have enough nlookups to move to submounts, or trigger a forget from > > > an exiting container that leads to an EBADF from the initial mount > > > namespace. > > > > One idea is to transfer the nlookup to a separately refcounted object > > that is referenced from mp_fi as well as all the submounts. > > That seems possible. Would the idea be to move all tracking of nlookup > to a separate refcounted object for the particular nodeid, or just do > this for the first lookup of a submount? Just for submounts. And yes, it should work if the count from the first lookup is transferred to this object (fuse_iget()) and subsequent counts (fuse_dentry_revalidate()) go to the mountpoint inode as usual. This will result in more than one FORGET in most cases, but that's okay. > Would you like me to put together a v3 that heads this direction? That would be great, thanks. Miklos