[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251217090833.GS1712166@ZenIV>
Date: Wed, 17 Dec 2025 09:08:33 +0000
From: Al Viro <viro@...iv.linux.org.uk>
To: Mateusz Guzik <mjguzik@...il.com>
Cc: brauner@...nel.org, jack@...e.cz, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, clm@...a.com
Subject: Re: [PATCH v2] fs: make sure to fail try_to_unlazy() and
try_to_unlazy() for LOOKUP_CACHED
On Wed, Dec 17, 2025 at 09:47:04AM +0100, Mateusz Guzik wrote:
> Otherwise the slowpath can be taken by the caller, defeating the flag.
>
> This regressed after calls to legitimize_links() started being
> conditionally elided and stems from the routine always failing
> after seeing the flag, regardless if there were any links.
>
> In order to address both the bug and the weird semantics make it illegal
> to call legitimize_links() with LOOKUP_CACHED and handle the problem at
> the two callsites.
>
> Pull up ->depth = 0 to drop_links() to avoid repeating it in the
> callers.
>
> One remaining weirdness is terminate_walk() walking the symlink stack
> after drop_links().
What weirdness? If we are not in RCU mode, we need to drop symlink bodies
*and* drop symlink references?
Powered by blists - more mailing lists