git: 807c4914a54b - stable/13 - cache: remove NOCACHE handling from cache_fplookup_noentry
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 05 Mar 2022 19:56:54 UTC
The branch stable/13 has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=807c4914a54b67bdf088f5d2ae6184f11d4f5f47 commit 807c4914a54b67bdf088f5d2ae6184f11d4f5f47 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2022-02-09 20:39:28 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2022-03-05 19:53:46 +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. (cherry picked from commit 611470a51560db61488b2d864176b8076eb5a65c) --- 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 ef4e33308472..780b5003749b 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;