Messages in this thread |  | | From | Amir Goldstein <> | | Date | Mon, 27 Apr 2026 09:43:04 +0200 | | Subject | Re: [PATCH v3 07/19] VFS: Add LOOKUP_SHARED flag. |
| |
On Mon, Apr 27, 2026 at 6:06 AM NeilBrown <neilb@ownmail.net> wrote: > > From: NeilBrown <neil@brown.name> > > Some ->lookup handlers will need to drop and retake the parent lock, so > they can safely use d_alloc_parallel(). > > ->lookup can be called with the parent lock either exclusive or shared. > > A new flag, LOOKUP_SHARED, tells ->lookup how the parent is locked. > > This is rather ugly, but will be gone soon after we move > d_alloc_parallel() out of the directory lock as ->lookup() will *always* > called with a shared lock on the parent.
Neil,
Forgive me for being skeptical about the *always* part.
How long ago did we add ->iterate_shared()?
It's true that Linus eventually got rid of ->iterate(), but we did not get rid of the assumption that iterate_shared() might be upgraded to exclusive lock.
The obvious reason is that *someone* needs to do this work for old filesystems, which are also hard to test and nobody wants to touch them.
I have nothing against this patch, but I think it is more realistic to state that LOOKUP_SHARED is here to stay, so if you think it is too ugly, maybe there is something to be done about it. Personally, I do not see the ugliness though.
Am I misjudging the situation of shared lookup wrt old filesystems?
Thanks, Amir.
|  |