The check for DCACHE_MANAGED_DENTRY at the start of __follow_mount_rcu() is redundant because the only caller (handle_mounts) already verifies d_managed(dentry) before calling this function, so, dentry in __follow_mount_rcu() has always DCACHE_MANAGED_DENTRY set. This early-out optimization never fires in practice - but it is marking as likely(). This was detected with branch profiling, which shows 100% misprediction in this likely. Remove the whole if clause instead of removing the likely, given we know for sure that dentry is not DCACHE_MANAGED_DENTRY. Signed-off-by: Breno Leitao --- fs/namei.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index bf0f66f0e9b9..774a2f5b0a10 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1623,9 +1623,6 @@ static bool __follow_mount_rcu(struct nameidata *nd, struct path *path) struct dentry *dentry = path->dentry; unsigned int flags = dentry->d_flags; - if (likely(!(flags & DCACHE_MANAGED_DENTRY))) - return true; - if (unlikely(nd->flags & LOOKUP_NO_XDEV)) return false; --- base-commit: 3609fa95fb0f2c1b099e69e56634edb8fc03f87c change-id: 20260105-dcache-01aa5d1c9b32 Best regards, -- Breno Leitao