On 2/19/24 20:38, Miklos Szeredi wrote: > On Mon, 19 Feb 2024 at 20:05, Antonio SJ Musumeci <trapexit@xxxxxxxxxx> wrote: > >> This is what I see from the kernel: >> >> lookup(nodeid=3, name=.); >> lookup(nodeid=3, name=..); >> lookup(nodeid=1, name=dir2); >> lookup(nodeid=1, name=..); >> forget(nodeid=3); >> forget(nodeid=1); > > This is really weird. It's a kernel bug, no arguments, because kernel > should never send a forget against the root inode. But that > lookup(nodeid=1, name=..); already looks bogus. Why exactly bogus? reconnect_path() if (IS_ROOT(dentry)) parent = reconnect_one(mnt, dentry, nbuf); reconnect_one() if (mnt->mnt_sb->s_export_op->get_parent) parent = mnt->mnt_sb->s_export_op->get_parent(dentry); fuse_get_parent() if (!fc->export_support) return ERR_PTR(-ESTALE); err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode), &dotdot_name, &outarg, &inode); Thanks, Bernd