git: 611470a51560 - main - cache: remove NOCACHE handling from cache_fplookup_noentry
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 11 Feb 2022 13:58:07 UTC
The branch main has been updated by mjg:
URL: https://cgit.FreeBSD.org/src/commit/?id=611470a51560db61488b2d864176b8076eb5a65c
commit 611470a51560db61488b2d864176b8076eb5a65c
Author: Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2022-02-09 20:39:28 +0000
Commit: Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2022-02-11 12:29:26 +0000
cache: remove NOCACHE handling from cache_fplookup_noentry
It was copy-pasted from locked lookup. As LOOKUP operation cannot have
the flag set it was always ending up setting MAKEENTRY.
---
sys/kern/vfs_cache.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index a34e0dad74a8..e4766194187f 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -4830,7 +4830,6 @@ cache_fplookup_noentry(struct cache_fpl *fpl)
struct vnode *dvp, *tvp;
seqc_t dvp_seqc;
int error;
- bool docache;
ndp = fpl->ndp;
cnp = fpl->cnp;
@@ -4839,6 +4838,8 @@ cache_fplookup_noentry(struct cache_fpl *fpl)
MPASS((cnp->cn_flags & MAKEENTRY) == 0);
MPASS((cnp->cn_flags & ISDOTDOT) == 0);
+ if (cnp->cn_nameiop == LOOKUP)
+ MPASS((cnp->cn_flags & NOCACHE) == 0);
MPASS(!cache_fpl_isdotdot(cnp));
/*
@@ -4915,10 +4916,7 @@ cache_fplookup_noentry(struct cache_fpl *fpl)
/*
* TODO: provide variants which don't require locking either vnode.
*/
- cnp->cn_flags |= ISLASTCN;
- docache = (cnp->cn_flags & NOCACHE) ^ NOCACHE;
- if (docache)
- cnp->cn_flags |= MAKEENTRY;
+ cnp->cn_flags |= ISLASTCN | MAKEENTRY;
cnp->cn_lkflags = LK_SHARED;
if ((cnp->cn_flags & LOCKSHARED) == 0) {
cnp->cn_lkflags = LK_EXCLUSIVE;