Date: Fri, 1 Jan 2021 00:11:52 GMT From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 6fe7de1a250b - main - cache: refactor cache_fpl_handle_root to fit the rest of the code better Message-ID: <202101010011.1010BqMx005789@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=6fe7de1a250bb497ca1a3e1d979ae21c2149c2ea commit 6fe7de1a250bb497ca1a3e1d979ae21c2149c2ea Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2020-12-28 09:25:01 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2021-01-01 00:10:43 +0000 cache: refactor cache_fpl_handle_root to fit the rest of the code better Tested by: pho --- sys/kern/vfs_cache.c | 55 +++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 22a5b54b2805..49fabc47884d 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -3562,31 +3562,6 @@ SYSCTL_BOOL(_vfs, OID_AUTO, cache_fast_lookup, CTLFLAG_RW, #define CACHE_FPL_FAILED -2020 -static void -cache_fpl_cleanup_cnp(struct componentname *cnp) -{ - - uma_zfree(namei_zone, cnp->cn_pnbuf); -#ifdef DIAGNOSTIC - cnp->cn_pnbuf = NULL; - cnp->cn_nameptr = NULL; -#endif -} - -static void -cache_fpl_handle_root(struct nameidata *ndp, struct vnode **dpp) -{ - struct componentname *cnp; - - cnp = &ndp->ni_cnd; - while (*(cnp->cn_nameptr) == '/') { - cnp->cn_nameptr++; - ndp->ni_pathlen--; - } - - *dpp = ndp->ni_rootdir; -} - /* * Components of nameidata (or objects it can point to) which may * need restoring in case fast path lookup fails. @@ -3613,6 +3588,34 @@ struct cache_fpl { bool fsearch; }; +static void +cache_fpl_cleanup_cnp(struct componentname *cnp) +{ + + uma_zfree(namei_zone, cnp->cn_pnbuf); +#ifdef DIAGNOSTIC + cnp->cn_pnbuf = NULL; + cnp->cn_nameptr = NULL; +#endif +} + +static struct vnode * +cache_fpl_handle_root(struct cache_fpl *fpl) +{ + struct nameidata *ndp; + struct componentname *cnp; + + ndp = fpl->ndp; + cnp = fpl->cnp; + + while (*(cnp->cn_nameptr) == '/') { + cnp->cn_nameptr++; + ndp->ni_pathlen--; + } + + return (ndp->ni_rootdir); +} + static void cache_fpl_checkpoint(struct cache_fpl *fpl, struct nameidata_saved *snd) { @@ -5174,7 +5177,7 @@ cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, cnp = fpl.cnp; cnp->cn_nameptr = cnp->cn_pnbuf; if (cnp->cn_pnbuf[0] == '/') { - cache_fpl_handle_root(ndp, &dvp); + dvp = cache_fpl_handle_root(&fpl); ndp->ni_resflags |= NIRES_ABS; } else { if (ndp->ni_dirfd == AT_FDCWD) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101010011.1010BqMx005789>