Re: 6.19 tmpfs __d_lookup() lockup

From: Hugh Dickins

Date: Fri Dec 12 2025 - 00:15:51 EST


On Fri, 12 Dec 2025, Al Viro wrote:
> On Thu, Dec 11, 2025 at 07:56:38PM -0800, Hugh Dickins wrote:
>
> > Of course, 2313598222f9 ("convert ramfs and tmpfs") (of Feb 26 2024!)
> > comes out as the first failing commit, no surprise there.
> >
> > I did try inserting a BUG_ON(node == node->next) on line 2438 of
> > fs/dcache.c, just after __d_lookup's hlist_bl_for_each_entry_rcu(),
> > and that BUG was immediately hit (but, for all I know, perhaps that's
> > an unreliable asserition, perhaps it's acceptable for a race to result
> > in a momentary node == node->next there).
>
> Hmm... Could you check if we are somehow hitting d_in_lookup(dentry)
> in d_make_persistent()?

Am I being stupid and misunderstanding you? I haven't tried
running with any printks, it seems obvious from the source that
d_make_persistent() always calls __d_instantiate(), which has a
WARN_ON(d_in_lookup(dentry)) at the start.

But I didn't see that warning fire on any occasion.

Hugh