Skip to content
Unverified Commit ad5a0351 authored by NeilBrown's avatar NeilBrown Committed by Christian Brauner
Browse files

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: 06c56740 ("Use try_lookup_noperm() instead of d_hash_and_lookup() outside of VFS")
Reported-by: default avatarSteve French <smfrench@gmail.com>
Link: https://lore.kernel.org/all/CAH2r5mu5SfBrdc2CFHwzft8=n9koPMk+Jzwpy-oUMx-wCRCesQ@mail.gmail.com/


Signed-off-by: default avatarNeilBrown <neil@brown.name>
Link: https://lore.kernel.org/174951744454.608730.18354002683881684261@noble.neil.brown.name


Tested-by: default avatarSteve French <stfrench@microsoft.com>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 6bdd3a01
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment