On Mon, 19 Feb 2024 at 20:55, Bernd Schubert <bernd.schubert@xxxxxxxxxxx> wrote: > > > > 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); It's only getting this far if (dentry->d_flags & DCACHE_DISCONNECTED), but that doesn't make sense on the root dentry. It does happen, though, I'm just not seeing yet how. Thanks, Miklos