]> www.infradead.org Git - users/jedix/linux-maple.git/commit
VFS: change try_lookup_noperm() to skip revalidation
authorNeilBrown <neil@brown.name>
Tue, 10 Jun 2025 01:04:04 +0000 (11:04 +1000)
committerChristian Brauner <brauner@kernel.org>
Wed, 11 Jun 2025 10:03:42 +0000 (12:03 +0200)
commitad5a0351064c8f744416df3a49156d2c61af5bc0
tree6a37747434a6b5e8cdd1f07cb2a96bbc07e6ee5c
parent6bdd3a01fe4627ad7a562ba38eb759eba715b671
VFS: change try_lookup_noperm() to skip revalidation

The recent change from using d_hash_and_lookup() to using
try_lookup_noperm() inadvertently introduce a d_revalidate() call when
the lookup was successful.  Steven French reports that this resulted in
worse than halving of performance in some cases.

Prior to the offending patch the only caller of try_lookup_noperm() was
autofs which does not need the d_revalidate().  So it is safe to remove
the d_revalidate() call providing we stop using try_lookup_noperm() to
implement lookup_noperm().

The "try_" in the name is strongly suggestive that the caller isn't
expecting much effort, so it seems reasonable to avoid the effort of
d_revalidate().

Fixes: 06c567403ae5 ("Use try_lookup_noperm() instead of d_hash_and_lookup() outside of VFS")
Reported-by: Steve French <smfrench@gmail.com>
Link: https://lore.kernel.org/all/CAH2r5mu5SfBrdc2CFHwzft8=n9koPMk+Jzwpy-oUMx-wCRCesQ@mail.gmail.com/
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://lore.kernel.org/174951744454.608730.18354002683881684261@noble.neil.brown.name
Tested-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/namei.c