From: Christian Brauner brauner@kernel.org
mainline inclusion from mainline-v6.12-rc1 commit d459c52ab378cdcd53c57ddcbfd5af648b20a150 category: performance bugzilla: https://gitee.com/src-openeuler/kernel/issues/IB1S01
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i...
--------------------------------
Now that we audit later during lookup_open() we can remove the audit dummy context check. This simplifies things a lot.
Signed-off-by: Christian Brauner brauner@kernel.org Signed-off-by: Jinjie Ruan ruanjinjie@huawei.com --- fs/namei.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c index 0108d86b83ee..1abc7f586b77 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -3522,16 +3522,6 @@ static struct dentry *lookup_fast_for_open(struct nameidata *nd, int open_flag) /* Don't bother on an O_EXCL create */ if (open_flag & O_EXCL) return NULL; - - /* - * FIXME: If auditing is enabled, then we'll have to unlazy to - * use the dentry. For now, don't do this, since it shifts - * contention from parent's i_rwsem to its d_lockref spinlock. - * Reconsider this once dentry refcounting handles heavy - * contention better. - */ - if ((nd->flags & LOOKUP_RCU) && !audit_dummy_context()) - return NULL; }
if (trailing_slashes(nd)) @@ -3584,7 +3574,7 @@ static const char *open_last_lookups(struct nameidata *nd, bool unlazied;
/* can stay in rcuwalk if not auditing */ - if (dentry && audit_dummy_context()) + if (dentry) goto finish_lookup; unlazied = dentry ? try_to_unlazy_next(nd, dentry) : try_to_unlazy(nd);