On Tue, Jul 19, 2022 at 06:32:04PM +0200, Helge Deller wrote: > > --- a/fs/dcache.c > > +++ b/fs/dcache.c > > @@ -605,8 +605,12 @@ static void __dentry_kill(struct dentry > > spin_unlock(&parent->d_lock); > > if (dentry->d_inode) > > dentry_unlink_inode(dentry); > > - else > > + else { > > + if (unlikely(d_in_lookup(dentry))) { > > + __d_lookup_done(dentry); > > + } > > spin_unlock(&dentry->d_lock); > > + } Ugh... If that triggers, we really have a problem. I don't see any way for that to happen (well, short of generally fucked refcounting - stray dput() on wrong address and all bets are off)