Lines Matching refs:cnp
1375 cache_neg_promote_cond(struct vnode *dvp, struct componentname *cnp, in cache_neg_promote_cond() argument
1416 if (!(ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_neg_promote_cond()
1417 !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen))) { in cache_neg_promote_cond()
1750 cache_zap_unlocked_bucket(struct namecache *ncp, struct componentname *cnp, in cache_zap_unlocked_bucket() argument
1764 rncp->nc_nlen == cnp->cn_namelen && in cache_zap_unlocked_bucket()
1765 !bcmp(rncp->nc_name, cnp->cn_nameptr, rncp->nc_nlen)) in cache_zap_unlocked_bucket()
1792 cache_zap_locked_bucket(struct namecache *ncp, struct componentname *cnp, in cache_zap_locked_bucket() argument
1813 return (cache_zap_unlocked_bucket(ncp, cnp, dvp, dvlp, vlp, hash, blp)); in cache_zap_locked_bucket()
1817 cache_remove_cnp(struct vnode *dvp, struct componentname *cnp) in cache_remove_cnp() argument
1825 if (cnp->cn_namelen == 2 && in cache_remove_cnp()
1826 cnp->cn_nameptr[0] == '.' && cnp->cn_nameptr[1] == '.') { in cache_remove_cnp()
1836 SDT_PROBE2(vfs, namecache, removecnp, miss, dvp, cnp); in cache_remove_cnp()
1853 SDT_PROBE2(vfs, namecache, removecnp, hit, dvp, cnp); in cache_remove_cnp()
1866 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_remove_cnp()
1875 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_remove_cnp()
1876 !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) in cache_remove_cnp()
1885 error = cache_zap_locked_bucket(ncp, cnp, hash, blp); in cache_remove_cnp()
1891 SDT_PROBE2(vfs, namecache, removecnp, hit, dvp, cnp); in cache_remove_cnp()
1896 SDT_PROBE2(vfs, namecache, removecnp, miss, dvp, cnp); in cache_remove_cnp()
1901 cache_lookup_dot(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup_dot() argument
1917 ltype = cnp->cn_lkflags & LK_TYPE_MASK; in cache_lookup_dot()
1934 cache_lookup_dotdot(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup_dotdot() argument
1944 MPASS((cnp->cn_flags & ISDOTDOT) != 0); in cache_lookup_dotdot()
1946 if ((cnp->cn_flags & MAKEENTRY) == 0) { in cache_lookup_dotdot()
1947 cache_remove_cnp(dvp, cnp); in cache_lookup_dotdot()
1982 error = vget_finish(*vpp, cnp->cn_lkflags, vs); in cache_lookup_dotdot()
1996 if (__predict_false(cnp->cn_nameiop == CREATE)) { in cache_lookup_dotdot()
1997 if (cnp->cn_flags & ISLASTCN) { in cache_lookup_dotdot()
2014 cnp->cn_flags |= ISWHITEOUT; in cache_lookup_dotdot()
2057 cache_lookup_fallback(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup_fallback() argument
2067 MPASS((cnp->cn_flags & ISDOTDOT) == 0); in cache_lookup_fallback()
2068 MPASS((cnp->cn_flags & (MAKEENTRY | NC_KEEPPOSENTRY)) != 0); in cache_lookup_fallback()
2071 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_lookup_fallback()
2076 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_lookup_fallback()
2077 !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) in cache_lookup_fallback()
2083 SDT_PROBE2(vfs, namecache, lookup, miss, dvp, cnp->cn_nameptr); in cache_lookup_fallback()
2098 error = vget_finish(*vpp, cnp->cn_lkflags, vs); in cache_lookup_fallback()
2108 if (__predict_true(cnp->cn_nameiop == CREATE)) { in cache_lookup_fallback()
2109 if (cnp->cn_flags & ISLASTCN) { in cache_lookup_fallback()
2111 error = cache_zap_locked_bucket(ncp, cnp, hash, blp); in cache_lookup_fallback()
2129 cnp->cn_flags |= ISWHITEOUT; in cache_lookup_fallback()
2134 cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup() argument
2148 cnp->cn_flags &= ~MAKEENTRY; in cache_lookup()
2153 if (__predict_false(cnp->cn_nameptr[0] == '.')) { in cache_lookup()
2154 if (cnp->cn_namelen == 1) in cache_lookup()
2155 return (cache_lookup_dot(dvp, vpp, cnp, tsp, ticksp)); in cache_lookup()
2156 if (cnp->cn_namelen == 2 && cnp->cn_nameptr[1] == '.') in cache_lookup()
2157 return (cache_lookup_dotdot(dvp, vpp, cnp, tsp, ticksp)); in cache_lookup()
2160 MPASS((cnp->cn_flags & ISDOTDOT) == 0); in cache_lookup()
2162 if ((cnp->cn_flags & (MAKEENTRY | NC_KEEPPOSENTRY)) == 0) { in cache_lookup()
2163 cache_remove_cnp(dvp, cnp); in cache_lookup()
2167 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_lookup()
2171 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_lookup()
2172 !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) in cache_lookup()
2178 SDT_PROBE2(vfs, namecache, lookup, miss, dvp, cnp->cn_nameptr); in cache_lookup()
2203 error = vget_finish(*vpp, cnp->cn_lkflags, vs); in cache_lookup()
2210 if (cnp->cn_nameiop == CREATE) { in cache_lookup()
2211 if (cnp->cn_flags & ISLASTCN) { in cache_lookup()
2227 if (!cache_neg_promote_cond(dvp, cnp, ncp, hash)) in cache_lookup()
2234 cnp->cn_flags |= ISWHITEOUT; in cache_lookup()
2237 return (cache_lookup_fallback(dvp, vpp, cnp, tsp, ticksp)); in cache_lookup()
2457 struct componentname *cnp) in cache_enter_dotdot_prep() argument
2466 len = cnp->cn_namelen; in cache_enter_dotdot_prep()
2468 hash = cache_get_hash(cnp->cn_nameptr, len, dvp); in cache_enter_dotdot_prep()
2487 cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, in cache_enter_time() argument
2498 KASSERT(cnp->cn_namelen <= NAME_MAX, in cache_enter_time()
2499 ("%s: passed len %ld exceeds NAME_MAX (%d)", __func__, cnp->cn_namelen, in cache_enter_time()
2507 if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') { in cache_enter_time()
2514 cnp->cn_nameptr, dvp)); in cache_enter_time()
2523 if (__predict_false(cnp->cn_nameptr[0] == '.')) { in cache_enter_time()
2524 if (cnp->cn_namelen == 1) in cache_enter_time()
2526 if (cnp->cn_namelen == 2 && cnp->cn_nameptr[1] == '.') { in cache_enter_time()
2527 cache_enter_dotdot_prep(dvp, vp, cnp); in cache_enter_time()
2532 ncp = cache_alloc(cnp->cn_namelen, tsp != NULL); in cache_enter_time()
2559 len = ncp->nc_nlen = cnp->cn_namelen; in cache_enter_time()
2560 hash = cache_get_hash(cnp->cn_nameptr, len, dvp); in cache_enter_time()
2561 memcpy(ncp->nc_name, cnp->cn_nameptr, len); in cache_enter_time()
2573 n2->nc_nlen == cnp->cn_namelen && in cache_enter_time()
2574 !bcmp(n2->nc_name, cnp->cn_nameptr, n2->nc_nlen)) { in cache_enter_time()
2579 __func__, NULL, vp, cnp->cn_nameptr)); in cache_enter_time()
2583 __func__, n2->nc_vp, vp, cnp->cn_nameptr)); in cache_enter_time()
2665 if (cnp->cn_flags & ISWHITEOUT) in cache_enter_time()
2708 cache_enter_time_flags(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, in cache_enter_time_flags() argument
2715 cache_remove_cnp(dvp, cnp); in cache_enter_time_flags()
2716 cache_enter_time(dvp, vp, cnp, tsp, dtsp); in cache_enter_time_flags()
3095 cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) in cache_validate() argument
3101 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_validate()
3107 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_validate()
3108 !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) { in cache_validate()
3168 struct componentname *cnp = ap->a_cnp; in vfs_cache_lookup() local
3169 int flags = cnp->cn_flags; in vfs_cache_lookup()
3178 (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME)) in vfs_cache_lookup()
3181 error = vn_dir_check_exec(dvp, cnp); in vfs_cache_lookup()
3185 error = cache_lookup(dvp, vpp, cnp, NULL, NULL); in vfs_cache_lookup()
3187 return (VOP_CACHEDLOOKUP(dvp, vpp, cnp)); in vfs_cache_lookup()
4200 struct componentname *cnp; member
4231 cache_fpl_cleanup_cnp(struct componentname *cnp) in cache_fpl_cleanup_cnp() argument
4234 uma_zfree(namei_zone, cnp->cn_pnbuf); in cache_fpl_cleanup_cnp()
4235 cnp->cn_pnbuf = NULL; in cache_fpl_cleanup_cnp()
4236 cnp->cn_nameptr = NULL; in cache_fpl_cleanup_cnp()
4243 struct componentname *cnp; in cache_fpl_handle_root() local
4246 cnp = fpl->cnp; in cache_fpl_handle_root()
4248 MPASS(*(cnp->cn_nameptr) == '/'); in cache_fpl_handle_root()
4249 cnp->cn_nameptr++; in cache_fpl_handle_root()
4252 if (__predict_false(*(cnp->cn_nameptr) == '/')) { in cache_fpl_handle_root()
4254 cnp->cn_nameptr++; in cache_fpl_handle_root()
4256 } while (*(cnp->cn_nameptr) == '/'); in cache_fpl_handle_root()
4376 struct componentname *cnp; in cache_fpl_aborted_impl() local
4379 cnp = fpl->cnp; in cache_fpl_aborted_impl()
4397 cache_fpl_cleanup_cnp(cnp); in cache_fpl_aborted_impl()
4483 MPASS(fpl->nulchar > fpl->cnp->cn_pnbuf); in cache_fpl_istrailingslash()
4488 cache_fpl_isdotdot(struct componentname *cnp) in cache_fpl_isdotdot() argument
4491 if (cnp->cn_namelen == 2 && in cache_fpl_isdotdot()
4492 cnp->cn_nameptr[1] == '.' && cnp->cn_nameptr[0] == '.') in cache_fpl_isdotdot()
4501 struct componentname *cnp; in cache_can_fplookup() local
4505 cnp = fpl->cnp; in cache_can_fplookup()
4512 if ((cnp->cn_flags & ~CACHE_FPL_SUPPORTED_CN_FLAGS) != 0) { in cache_can_fplookup()
4535 struct componentname *cnp; in cache_fplookup_dirfd() local
4540 cnp = fpl->cnp; in cache_fplookup_dirfd()
4548 if (!((cnp->cn_flags & EMPTYPATH) != 0 && cnp->cn_pnbuf[0] == '\0')) { in cache_fplookup_dirfd()
4560 struct componentname *cnp; in cache_fplookup_negative_promote() local
4563 cnp = fpl->cnp; in cache_fplookup_negative_promote()
4567 if (cache_neg_promote_cond(dvp, cnp, oncp, hash)) in cache_fplookup_negative_promote()
4580 struct componentname *cnp; in cache_fplookup_partial_setup() local
4587 cnp = fpl->cnp; in cache_fplookup_partial_setup()
4622 if (cnp->cn_nameptr != fpl->snd.cn_nameptr) { in cache_fplookup_partial_setup()
4624 cnp->cn_nameptr, fpl->snd.cn_nameptr, cnp->cn_pnbuf); in cache_fplookup_partial_setup()
4629 cnp->cn_flags |= MAKEENTRY; in cache_fplookup_partial_setup()
4631 cnp->cn_flags |= ISLASTCN; in cache_fplookup_partial_setup()
4632 if (cache_fpl_isdotdot(cnp)) in cache_fplookup_partial_setup()
4633 cnp->cn_flags |= ISDOTDOT; in cache_fplookup_partial_setup()
4639 if (__predict_false(*(cnp->cn_nameptr) == '/')) { in cache_fplookup_partial_setup()
4641 cnp->cn_nameptr++; in cache_fplookup_partial_setup()
4643 } while (*(cnp->cn_nameptr) == '/'); in cache_fplookup_partial_setup()
4646 ndp->ni_pathlen = fpl->nulchar - cnp->cn_nameptr + 1; in cache_fplookup_partial_setup()
4651 cnp->cn_nameptr, cnp->cn_nameptr, cnp->cn_pnbuf); in cache_fplookup_partial_setup()
4660 struct componentname *cnp; in cache_fplookup_final_child() local
4665 cnp = fpl->cnp; in cache_fplookup_final_child()
4669 if ((cnp->cn_flags & LOCKLEAF) != 0) { in cache_fplookup_final_child()
4671 if ((cnp->cn_flags & LOCKSHARED) == 0) in cache_fplookup_final_child()
4682 if ((cnp->cn_flags & LOCKLEAF) != 0) in cache_fplookup_final_child()
4699 struct componentname *cnp; in cache_fplookup_final_modifying() local
4708 cnp = fpl->cnp; in cache_fplookup_final_modifying()
4712 MPASS(*(cnp->cn_nameptr) != '/'); in cache_fplookup_final_modifying()
4714 if ((cnp->cn_flags & LOCKPARENT) == 0) in cache_fplookup_final_modifying()
4715 MPASS((cnp->cn_flags & WANTPARENT) != 0); in cache_fplookup_final_modifying()
4716 MPASS((cnp->cn_flags & TRAILINGSLASH) == 0); in cache_fplookup_final_modifying()
4717 MPASS(cnp->cn_nameiop == CREATE || cnp->cn_nameiop == DELETE || in cache_fplookup_final_modifying()
4718 cnp->cn_nameiop == RENAME); in cache_fplookup_final_modifying()
4719 MPASS((cnp->cn_flags & MAKEENTRY) == 0); in cache_fplookup_final_modifying()
4720 MPASS((cnp->cn_flags & ISDOTDOT) == 0); in cache_fplookup_final_modifying()
4722 docache = (cnp->cn_flags & NOCACHE) ^ NOCACHE; in cache_fplookup_final_modifying()
4723 if (cnp->cn_nameiop == DELETE || cnp->cn_nameiop == RENAME) in cache_fplookup_final_modifying()
4746 if (cnp->cn_nameiop == CREATE) { in cache_fplookup_final_modifying()
4752 if (fpl->tvp != NULL && (cnp->cn_flags & FAILIFEXISTS) != 0) { in cache_fplookup_final_modifying()
4790 cnp->cn_flags |= ISLASTCN; in cache_fplookup_final_modifying()
4792 cnp->cn_flags |= MAKEENTRY; in cache_fplookup_final_modifying()
4793 if (cache_fpl_isdotdot(cnp)) in cache_fplookup_final_modifying()
4794 cnp->cn_flags |= ISDOTDOT; in cache_fplookup_final_modifying()
4795 cnp->cn_lkflags = LK_EXCLUSIVE; in cache_fplookup_final_modifying()
4796 error = VOP_LOOKUP(dvp, &tvp, cnp); in cache_fplookup_final_modifying()
4814 if ((cnp->cn_flags & LOCKPARENT) == 0) { in cache_fplookup_final_modifying()
4838 if ((cnp->cn_flags & FOLLOW) != 0) { in cache_fplookup_final_modifying()
4855 if ((cnp->cn_flags & FAILIFEXISTS) != 0) { in cache_fplookup_final_modifying()
4861 if ((cnp->cn_flags & LOCKLEAF) == 0) { in cache_fplookup_final_modifying()
4865 if ((cnp->cn_flags & LOCKPARENT) == 0) { in cache_fplookup_final_modifying()
4888 struct componentname *cnp; in cache_fplookup_final_withparent() local
4894 cnp = fpl->cnp; in cache_fplookup_final_withparent()
4899 MPASS((cnp->cn_flags & (LOCKPARENT|WANTPARENT)) != 0); in cache_fplookup_final_withparent()
4917 if ((cnp->cn_flags & LOCKPARENT) != 0) { in cache_fplookup_final_withparent()
4929 if ((cnp->cn_flags & LOCKPARENT) != 0) in cache_fplookup_final_withparent()
4940 if ((cnp->cn_flags & LOCKPARENT) != 0) in cache_fplookup_final_withparent()
4954 struct componentname *cnp; in cache_fplookup_final() local
4959 cnp = fpl->cnp; in cache_fplookup_final()
4964 MPASS(*(cnp->cn_nameptr) != '/'); in cache_fplookup_final()
4966 if (cnp->cn_nameiop != LOOKUP) { in cache_fplookup_final()
4970 if ((cnp->cn_flags & (LOCKPARENT|WANTPARENT)) != 0) in cache_fplookup_final()
4996 struct componentname *cnp; in cache_fplookup_degenerate() local
5007 cnp = fpl->cnp; in cache_fplookup_degenerate()
5011 for (cp = cnp->cn_pnbuf; *cp != '\0'; cp++) { in cache_fplookup_degenerate()
5014 cnp->cn_pnbuf)); in cache_fplookup_degenerate()
5018 if (__predict_false(cnp->cn_nameiop != LOOKUP)) { in cache_fplookup_degenerate()
5023 if ((cnp->cn_flags & (LOCKPARENT|WANTPARENT)) != 0) { in cache_fplookup_degenerate()
5033 if ((cnp->cn_flags & LOCKLEAF) != 0) { in cache_fplookup_degenerate()
5035 if ((cnp->cn_flags & LOCKSHARED) == 0) in cache_fplookup_degenerate()
5051 struct componentname *cnp; in cache_fplookup_emptypath() local
5060 cnp = fpl->cnp; in cache_fplookup_emptypath()
5063 MPASS(*cnp->cn_pnbuf == '\0'); in cache_fplookup_emptypath()
5065 if (__predict_false((cnp->cn_flags & EMPTYPATH) == 0)) { in cache_fplookup_emptypath()
5070 MPASS((cnp->cn_flags & (LOCKPARENT | WANTPARENT)) == 0); in cache_fplookup_emptypath()
5078 if ((cnp->cn_flags & LOCKLEAF) != 0) { in cache_fplookup_emptypath()
5080 if ((cnp->cn_flags & LOCKSHARED) == 0) in cache_fplookup_emptypath()
5098 struct componentname *cnp; in cache_fplookup_noentry() local
5105 cnp = fpl->cnp; in cache_fplookup_noentry()
5109 MPASS((cnp->cn_flags & MAKEENTRY) == 0); in cache_fplookup_noentry()
5110 MPASS((cnp->cn_flags & ISDOTDOT) == 0); in cache_fplookup_noentry()
5111 if (cnp->cn_nameiop == LOOKUP) in cache_fplookup_noentry()
5112 MPASS((cnp->cn_flags & NOCACHE) == 0); in cache_fplookup_noentry()
5113 MPASS(!cache_fpl_isdotdot(cnp)); in cache_fplookup_noentry()
5118 if (__predict_false(cnp->cn_namelen > NAME_MAX)) { in cache_fplookup_noentry()
5123 if (cnp->cn_nameptr[0] == '/') { in cache_fplookup_noentry()
5127 if (cnp->cn_pnbuf[0] == '\0') { in cache_fplookup_noentry()
5131 if (cnp->cn_nameptr[0] == '\0') { in cache_fplookup_noentry()
5138 if (cnp->cn_nameiop != LOOKUP) { in cache_fplookup_noentry()
5187 cnp->cn_flags |= ISLASTCN | MAKEENTRY; in cache_fplookup_noentry()
5188 cnp->cn_lkflags = LK_SHARED; in cache_fplookup_noentry()
5189 if ((cnp->cn_flags & LOCKSHARED) == 0) { in cache_fplookup_noentry()
5190 cnp->cn_lkflags = LK_EXCLUSIVE; in cache_fplookup_noentry()
5192 error = VOP_LOOKUP(dvp, &tvp, cnp); in cache_fplookup_noentry()
5210 if ((cnp->cn_flags & (WANTPARENT | LOCKPARENT)) == 0) { in cache_fplookup_noentry()
5212 } else if ((cnp->cn_flags & LOCKPARENT) == 0) { in cache_fplookup_noentry()
5219 if ((cnp->cn_flags & FOLLOW) != 0) { in cache_fplookup_noentry()
5232 if ((cnp->cn_flags & LOCKLEAF) == 0) { in cache_fplookup_noentry()
5236 if ((cnp->cn_flags & (WANTPARENT | LOCKPARENT)) == 0) { in cache_fplookup_noentry()
5238 } else if ((cnp->cn_flags & LOCKPARENT) == 0) { in cache_fplookup_noentry()
5277 struct componentname *cnp; in cache_fplookup_dotdot() local
5284 cnp = fpl->cnp; in cache_fplookup_dotdot()
5287 MPASS(cache_fpl_isdotdot(cnp)); in cache_fplookup_dotdot()
5292 for (pr = cnp->cn_cred->cr_prison; pr != NULL; in cache_fplookup_dotdot()
5368 if (__predict_false(fpl->cnp->cn_nameiop != LOOKUP)) { in cache_fplookup_neg()
5395 struct componentname *cnp; in cache_symlink_resolve() local
5399 cnp = fpl->cnp; in cache_symlink_resolve()
5411 ndp->ni_pathlen = fpl->nulchar - cnp->cn_nameptr - cnp->cn_namelen + 1; in cache_symlink_resolve()
5416 cnp->cn_nameptr, cnp->cn_nameptr, cnp->cn_pnbuf); in cache_symlink_resolve()
5430 bcopy(ndp->ni_next, cnp->cn_pnbuf + len, ndp->ni_pathlen); in cache_symlink_resolve()
5434 cnp->cn_pnbuf[len] = '/'; in cache_symlink_resolve()
5435 cnp->cn_pnbuf[len + 1] = '\0'; in cache_symlink_resolve()
5437 cnp->cn_pnbuf[len] = '\0'; in cache_symlink_resolve()
5440 bcopy(string, cnp->cn_pnbuf, len); in cache_symlink_resolve()
5444 cnp->cn_nameptr = cnp->cn_pnbuf; in cache_symlink_resolve()
5445 fpl->nulchar = &cnp->cn_nameptr[ndp->ni_pathlen - 1]; in cache_symlink_resolve()
5455 struct componentname *cnp; in cache_fplookup_symlink() local
5461 cnp = fpl->cnp; in cache_fplookup_symlink()
5467 if ((cnp->cn_flags & FOLLOW) == 0) { in cache_fplookup_symlink()
5501 if (*(cnp->cn_nameptr) == '/') { in cache_fplookup_symlink()
5530 struct componentname *cnp; in cache_fplookup_next() local
5537 cnp = fpl->cnp; in cache_fplookup_next()
5541 if (__predict_false(cnp->cn_nameptr[0] == '.')) { in cache_fplookup_next()
5542 if (cnp->cn_namelen == 1) { in cache_fplookup_next()
5545 if (cnp->cn_namelen == 2 && cnp->cn_nameptr[1] == '.') { in cache_fplookup_next()
5550 MPASS(!cache_fpl_isdotdot(cnp)); in cache_fplookup_next()
5553 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_fplookup_next()
5554 !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) in cache_fplookup_next()
5808 struct componentname *cnp; in cache_fplookup_parse() local
5814 cnp = fpl->cnp; in cache_fplookup_parse()
5826 MPASS(&cnp->cn_nameptr[fpl->debug.ni_pathlen - 1] >= cnp->cn_pnbuf); in cache_fplookup_parse()
5827 KASSERT(&cnp->cn_nameptr[fpl->debug.ni_pathlen - 1] == fpl->nulchar, in cache_fplookup_parse()
5829 __func__, fpl->debug.ni_pathlen, &cnp->cn_nameptr[fpl->debug.ni_pathlen - 1], in cache_fplookup_parse()
5830 fpl->nulchar, cnp->cn_pnbuf)); in cache_fplookup_parse()
5833 cnp->cn_pnbuf)); in cache_fplookup_parse()
5836 for (cp = cnp->cn_nameptr; *cp != '/'; cp++) { in cache_fplookup_parse()
5839 cnp->cn_nameptr)); in cache_fplookup_parse()
5846 cnp->cn_namelen = cp - cnp->cn_nameptr; in cache_fplookup_parse()
5847 cache_fpl_pathlen_sub(fpl, cnp->cn_namelen); in cache_fplookup_parse()
5854 if (cnp->cn_namelen <= NAME_MAX) { in cache_fplookup_parse()
5855 if (fpl->hash != cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp)) { in cache_fplookup_parse()
5857 cnp->cn_nameptr, cnp->cn_namelen); in cache_fplookup_parse()
5875 struct componentname *cnp; in cache_fplookup_parse_advance() local
5878 cnp = fpl->cnp; in cache_fplookup_parse_advance()
5880 cnp->cn_nameptr = ndp->ni_next; in cache_fplookup_parse_advance()
5881 KASSERT(*(cnp->cn_nameptr) == '/', in cache_fplookup_parse_advance()
5883 cnp->cn_nameptr, cnp->cn_pnbuf, cnp->cn_pnbuf)); in cache_fplookup_parse_advance()
5884 cnp->cn_nameptr++; in cache_fplookup_parse_advance()
5901 struct componentname *cnp; in cache_fplookup_skip_slashes() local
5904 cnp = fpl->cnp; in cache_fplookup_skip_slashes()
5906 MPASS(*(cnp->cn_nameptr) == '/'); in cache_fplookup_skip_slashes()
5908 cnp->cn_nameptr++; in cache_fplookup_skip_slashes()
5910 } while (*(cnp->cn_nameptr) == '/'); in cache_fplookup_skip_slashes()
5916 cnp->cn_nameptr--; in cache_fplookup_skip_slashes()
5922 ndp->ni_next = cnp->cn_nameptr; in cache_fplookup_skip_slashes()
5957 struct componentname *cnp; in cache_fplookup_trailingslash() local
5965 cnp = fpl->cnp; in cache_fplookup_trailingslash()
5972 cnp->cn_pnbuf)); in cache_fplookup_trailingslash()
5973 KASSERT(cnp->cn_nameptr[0] == '\0', in cache_fplookup_trailingslash()
5974 ("%s: expected nul char at %p; string [%s]\n", __func__, &cnp->cn_nameptr[0], in cache_fplookup_trailingslash()
5975 cnp->cn_pnbuf)); in cache_fplookup_trailingslash()
5976 KASSERT(cnp->cn_namelen == 0, in cache_fplookup_trailingslash()
5977 ("%s: namelen 0 but got %ld; string [%s]\n", __func__, cnp->cn_namelen, in cache_fplookup_trailingslash()
5978 cnp->cn_pnbuf)); in cache_fplookup_trailingslash()
5979 MPASS(cnp->cn_nameptr > cnp->cn_pnbuf); in cache_fplookup_trailingslash()
5981 if (cnp->cn_nameiop != LOOKUP) { in cache_fplookup_trailingslash()
5996 ndp->ni_next = &cnp->cn_nameptr[0]; in cache_fplookup_trailingslash()
6002 cn_nameptr_orig = cnp->cn_nameptr; in cache_fplookup_trailingslash()
6003 while (cnp->cn_nameptr >= cnp->cn_pnbuf) { in cache_fplookup_trailingslash()
6004 cnp->cn_nameptr--; in cache_fplookup_trailingslash()
6005 if (cnp->cn_nameptr[0] != '/') { in cache_fplookup_trailingslash()
6015 cn_nameptr_slash = cnp->cn_nameptr; in cache_fplookup_trailingslash()
6016 while (cnp->cn_nameptr > cnp->cn_pnbuf) { in cache_fplookup_trailingslash()
6017 cnp->cn_nameptr--; in cache_fplookup_trailingslash()
6018 if (cnp->cn_nameptr[0] == '/') { in cache_fplookup_trailingslash()
6022 if (cnp->cn_nameptr[0] == '/') { in cache_fplookup_trailingslash()
6023 cnp->cn_nameptr++; in cache_fplookup_trailingslash()
6026 cnp->cn_namelen = cn_nameptr_slash - cnp->cn_nameptr + 1; in cache_fplookup_trailingslash()
6027 cache_fpl_pathlen_add(fpl, cn_nameptr_orig - cnp->cn_nameptr); in cache_fplookup_trailingslash()
6031 ni_pathlen = fpl->nulchar - cnp->cn_nameptr + 1; in cache_fplookup_trailingslash()
6035 cnp->cn_nameptr, cnp->cn_nameptr, cnp->cn_pnbuf); in cache_fplookup_trailingslash()
6042 if (cnp->cn_nameptr[0] == '.' && cnp->cn_namelen == 1) { in cache_fplookup_trailingslash()
6072 struct componentname *cnp; in cache_fplookup_failed_vexec() local
6076 cnp = fpl->cnp; in cache_fplookup_failed_vexec()
6083 if (cnp->cn_pnbuf[0] == '\0') { in cache_fplookup_failed_vexec()
6101 if (cnp->cn_nameptr[0] == '\0' && fpl->tvp == NULL) { in cache_fplookup_failed_vexec()
6108 if (__predict_false(cnp->cn_namelen > NAME_MAX)) { in cache_fplookup_failed_vexec()
6174 struct componentname *cnp; in cache_fplookup_impl() local
6179 cnp = fpl->cnp; in cache_fplookup_impl()
6201 error = VOP_FPLOOKUP_VEXEC(fpl->dvp, cnp->cn_cred); in cache_fplookup_impl()
6324 struct componentname *cnp; in cache_fplookup() local
6330 fpl.cnp = cnp = &ndp->ni_cnd; in cache_fplookup()
6332 KASSERT ((cnp->cn_flags & CACHE_FPL_INTERNAL_CN_FLAGS) == 0, in cache_fplookup()
6334 cnp->cn_flags)); in cache_fplookup()
6335 MPASS(cnp->cn_nameptr == cnp->cn_pnbuf); in cache_fplookup()
6350 fpl.nulchar = &cnp->cn_nameptr[ndp->ni_pathlen - 1]; in cache_fplookup()
6356 namei_setup_rootdir(ndp, cnp, pwd); in cache_fplookup()
6359 if (cnp->cn_pnbuf[0] == '/') { in cache_fplookup()
6373 SDT_PROBE4(vfs, namei, lookup, entry, dvp, cnp->cn_pnbuf, cnp->cn_flags, true); in cache_fplookup()
6389 cache_fpl_cleanup_cnp(fpl.cnp); in cache_fplookup()