Lines Matching refs:dvp

802 cache_get_hash(char *name, u_char len, struct vnode *dvp)  in cache_get_hash()  argument
805 return (fnv_32_buf(name, len, dvp->v_nchash)); in cache_get_hash()
809 cache_get_hash_iter_start(struct vnode *dvp) in cache_get_hash_iter_start() argument
812 return (dvp->v_nchash); in cache_get_hash_iter_start()
1288 cache_neg_promote_cond(struct vnode *dvp, struct componentname *cnp, in cache_neg_promote_cond() argument
1329 if (!(ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_neg_promote_cond()
1449 struct vnode *dvp; in cache_neg_evict() local
1474 dvp = ncp->nc_dvp; in cache_neg_evict()
1475 hash = cache_get_hash(ncp->nc_name, nlen, dvp); in cache_neg_evict()
1476 dvlp = VP2VNODELOCK(dvp); in cache_neg_evict()
1487 if (ncp2 == ncp && ncp2->nc_dvp == dvp && in cache_neg_evict()
1549 struct vnode *dvp, *vp; in cache_zap_locked() local
1551 dvp = ncp->nc_dvp; in cache_zap_locked()
1556 cache_assert_vnode_locked(dvp); in cache_zap_locked()
1564 SDT_PROBE3(vfs, namecache, zap, done, dvp, ncp->nc_name, vp); in cache_zap_locked()
1570 SDT_PROBE2(vfs, namecache, zap_negative, done, dvp, ncp->nc_name); in cache_zap_locked()
1574 if (ncp == dvp->v_cache_dd) { in cache_zap_locked()
1575 atomic_store_ptr(&dvp->v_cache_dd, NULL); in cache_zap_locked()
1579 if (LIST_EMPTY(&dvp->v_cache_src)) { in cache_zap_locked()
1664 struct vnode *dvp, struct mtx *dvlp, struct mtx *vlp, uint32_t hash, in cache_zap_unlocked_bucket() argument
1676 if (rncp == ncp && rncp->nc_dvp == dvp && in cache_zap_unlocked_bucket()
1709 struct vnode *dvp; in cache_zap_locked_bucket() local
1724 dvp = ncp->nc_dvp; in cache_zap_locked_bucket()
1726 return (cache_zap_unlocked_bucket(ncp, cnp, dvp, dvlp, vlp, hash, blp)); in cache_zap_locked_bucket()
1730 cache_remove_cnp(struct vnode *dvp, struct componentname *cnp) in cache_remove_cnp() argument
1740 dvlp = VP2VNODELOCK(dvp); in cache_remove_cnp()
1744 ncp = dvp->v_cache_dd; in cache_remove_cnp()
1749 SDT_PROBE2(vfs, namecache, removecnp, miss, dvp, cnp); in cache_remove_cnp()
1753 if (!cache_zap_locked_vnode_kl2(ncp, dvp, &dvlp2)) in cache_remove_cnp()
1755 MPASS(dvp->v_cache_dd == NULL); in cache_remove_cnp()
1761 atomic_store_ptr(&dvp->v_cache_dd, NULL); in cache_remove_cnp()
1766 SDT_PROBE2(vfs, namecache, removecnp, hit, dvp, cnp); in cache_remove_cnp()
1779 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_remove_cnp()
1788 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_remove_cnp()
1804 SDT_PROBE2(vfs, namecache, removecnp, hit, dvp, cnp); in cache_remove_cnp()
1809 SDT_PROBE2(vfs, namecache, removecnp, miss, dvp, cnp); in cache_remove_cnp()
1814 cache_lookup_dot(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup_dot() argument
1819 *vpp = dvp; in cache_lookup_dot()
1820 SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ".", *vpp); in cache_lookup_dot()
1847 cache_lookup_dotdot(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup_dotdot() argument
1860 cache_remove_cnp(dvp, cnp); in cache_lookup_dotdot()
1865 dvlp = VP2VNODELOCK(dvp); in cache_lookup_dotdot()
1867 ncp = dvp->v_cache_dd; in cache_lookup_dotdot()
1869 SDT_PROBE2(vfs, namecache, lookup, miss, dvp, ".."); in cache_lookup_dotdot()
1882 SDT_PROBE3(vfs, namecache, lookup, hit, dvp, "..", *vpp); in cache_lookup_dotdot()
1890 MPASS(dvp != *vpp); in cache_lookup_dotdot()
1891 ltype = VOP_ISLOCKED(dvp); in cache_lookup_dotdot()
1892 VOP_UNLOCK(dvp); in cache_lookup_dotdot()
1896 vn_lock(dvp, ltype | LK_RETRY); in cache_lookup_dotdot()
1897 if (VN_IS_DOOMED(dvp)) { in cache_lookup_dotdot()
1912 cache_zap_negative_locked_vnode_kl(ncp, dvp); in cache_lookup_dotdot()
1970 cache_lookup_fallback(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup_fallback() argument
1984 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_lookup_fallback()
1989 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_lookup_fallback()
1996 SDT_PROBE2(vfs, namecache, lookup, miss, dvp, cnp->cn_nameptr); in cache_lookup_fallback()
2006 SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ncp->nc_name, *vpp); in cache_lookup_fallback()
2008 MPASS(dvp != *vpp); in cache_lookup_fallback()
2047 cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp, in cache_lookup() argument
2068 return (cache_lookup_dot(dvp, vpp, cnp, tsp, ticksp)); in cache_lookup()
2070 return (cache_lookup_dotdot(dvp, vpp, cnp, tsp, ticksp)); in cache_lookup()
2076 cache_remove_cnp(dvp, cnp); in cache_lookup()
2080 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_lookup()
2084 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_lookup()
2091 SDT_PROBE2(vfs, namecache, lookup, miss, dvp, cnp->cn_nameptr); in cache_lookup()
2102 SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ncp->nc_name, *vpp); in cache_lookup()
2104 MPASS(dvp != *vpp); in cache_lookup()
2140 if (!cache_neg_promote_cond(dvp, cnp, ncp, hash)) in cache_lookup()
2150 return (cache_lookup_fallback(dvp, vpp, cnp, tsp, ticksp)); in cache_lookup()
2169 struct vnode *dvp) in cache_lock_vnodes_cel() argument
2177 MPASS(vp != NULL || dvp != NULL); in cache_lock_vnodes_cel()
2180 vlp2 = VP2VNODELOCK(dvp); in cache_lock_vnodes_cel()
2281 cache_enter_lock(struct celockstate *cel, struct vnode *dvp, struct vnode *vp, in cache_enter_lock() argument
2291 cache_lock_vnodes_cel(cel, dvp, vp); in cache_enter_lock()
2324 cache_enter_lock_dd(struct celockstate *cel, struct vnode *dvp, struct vnode *vp, in cache_enter_lock_dd() argument
2334 cache_lock_vnodes_cel(cel, dvp, vp); in cache_enter_lock_dd()
2335 ncp = atomic_load_consume_ptr(&dvp->v_cache_dd); in cache_enter_lock_dd()
2341 MPASS(ncp->nc_dvp == dvp); in cache_enter_lock_dd()
2347 if (ncp == dvp->v_cache_dd && in cache_enter_lock_dd()
2369 cache_enter_dotdot_prep(struct vnode *dvp, struct vnode *vp, in cache_enter_dotdot_prep() argument
2377 if (atomic_load_ptr(&dvp->v_cache_dd) == NULL) in cache_enter_dotdot_prep()
2381 hash = cache_get_hash(cnp->cn_nameptr, len, dvp); in cache_enter_dotdot_prep()
2382 cache_enter_lock_dd(&cel, dvp, vp, hash); in cache_enter_dotdot_prep()
2383 ncp = dvp->v_cache_dd; in cache_enter_dotdot_prep()
2385 KASSERT(ncp->nc_dvp == dvp, ("wrong isdotdot parent")); in cache_enter_dotdot_prep()
2390 atomic_store_ptr(&dvp->v_cache_dd, NULL); in cache_enter_dotdot_prep()
2400 cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, in cache_enter_time() argument
2414 VNPASS(!VN_IS_DOOMED(dvp), dvp); in cache_enter_time()
2415 VNPASS(dvp->v_type != VNON, dvp); in cache_enter_time()
2421 KASSERT(dvp == vp, in cache_enter_time()
2423 dvp, vp)); in cache_enter_time()
2425 KASSERT(dvp != vp, in cache_enter_time()
2427 cnp->cn_nameptr, dvp)); in cache_enter_time()
2440 cache_enter_dotdot_prep(dvp, vp, cnp); in cache_enter_time()
2461 ncp->nc_dvp = dvp; in cache_enter_time()
2473 hash = cache_get_hash(cnp->cn_nameptr, len, dvp); in cache_enter_time()
2476 cache_enter_lock(&cel, dvp, vp, hash); in cache_enter_time()
2485 if (n2->nc_dvp == dvp && in cache_enter_time()
2520 SDT_PROBE3(vfs, namecache, enter, duplicate, dvp, ncp->nc_name, in cache_enter_time()
2531 if (dvp->v_cache_dd != NULL) in cache_enter_time()
2536 atomic_store_ptr(&dvp->v_cache_dd, ncp); in cache_enter_time()
2562 if (LIST_EMPTY(&dvp->v_cache_src)) { in cache_enter_time()
2563 cache_hold_vnode(dvp); in cache_enter_time()
2565 LIST_INSERT_HEAD(&dvp->v_cache_src, ncp, nc_src); in cache_enter_time()
2575 SDT_PROBE3(vfs, namecache, enter, done, dvp, ncp->nc_name, in cache_enter_time()
2581 SDT_PROBE2(vfs, namecache, enter_negative, done, dvp, in cache_enter_time()
2621 cache_enter_time_flags(struct vnode *dvp, struct vnode *vp, struct componentname *cnp, in cache_enter_time_flags() argument
2628 cache_remove_cnp(dvp, cnp); in cache_enter_time_flags()
2629 cache_enter_time(dvp, vp, cnp, tsp, dtsp); in cache_enter_time_flags()
2995 cache_vop_rmdir(struct vnode *dvp, struct vnode *vp) in cache_vop_rmdir() argument
2998 ASSERT_VOP_IN_SEQC(dvp); in cache_vop_rmdir()
3008 cache_validate(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) in cache_validate() argument
3014 hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); in cache_validate()
3020 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_validate()
3078 struct vnode *dvp; in vfs_cache_lookup() local
3085 dvp = ap->a_dvp; in vfs_cache_lookup()
3087 if (dvp->v_type != VDIR) in vfs_cache_lookup()
3090 if ((flags & ISLASTCN) && (dvp->v_mount->mnt_flag & MNT_RDONLY) && in vfs_cache_lookup()
3094 error = vn_dir_check_exec(dvp, cnp); in vfs_cache_lookup()
3098 error = cache_lookup(dvp, vpp, cnp, NULL, NULL); in vfs_cache_lookup()
3100 return (VOP_CACHEDLOOKUP(dvp, vpp, cnp)); in vfs_cache_lookup()
3301 struct vnode *dvp; in vn_vptocnp() local
3330 dvp = *vp; in vn_vptocnp()
3334 vrele(dvp); in vn_vptocnp()
3341 error = VOP_VPTOCNP(*vp, &dvp, buf, buflen); in vn_vptocnp()
3349 *vp = dvp; in vn_vptocnp()
3350 if (VN_IS_DOOMED(dvp)) { in vn_vptocnp()
3352 vrele(dvp); in vn_vptocnp()
3670 vn_fullpath_hardlink(struct vnode *vp, struct vnode *dvp, in vn_fullpath_hardlink() argument
3717 vp = dvp; in vn_fullpath_hardlink()
3862 struct vnode *dvp, char *path, u_int pathlen, const char *leaf_name, in vn_path_to_global_path_hardlink() argument
3879 error = vn_fullpath_hardlink(vp, dvp, leaf_name, leaf_length, in vn_path_to_global_path_hardlink()
4105 struct vnode *dvp; member
4349 fpl->dvp = NULL; in cache_fpl_handled_error_impl()
4464 struct vnode *dvp; in cache_fplookup_negative_promote() local
4467 dvp = fpl->dvp; in cache_fplookup_negative_promote()
4470 if (cache_neg_promote_cond(dvp, cnp, oncp, hash)) in cache_fplookup_negative_promote()
4485 struct vnode *dvp; in cache_fplookup_partial_setup() local
4492 dvp = fpl->dvp; in cache_fplookup_partial_setup()
4509 dvs = vget_prep_smr(dvp); in cache_fplookup_partial_setup()
4516 vget_finish_ref(dvp, dvs); in cache_fplookup_partial_setup()
4517 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_partial_setup()
4518 vrele(dvp); in cache_fplookup_partial_setup()
4531 ndp->ni_startdir = dvp; in cache_fplookup_partial_setup()
4604 struct vnode *dvp, *tvp; in cache_fplookup_final_modifying() local
4612 dvp = fpl->dvp; in cache_fplookup_final_modifying()
4638 mp = atomic_load_ptr(&dvp->v_mount); in cache_fplookup_final_modifying()
4674 dvs = vget_prep_smr(dvp); in cache_fplookup_final_modifying()
4680 vget_finish_ref(dvp, dvs); in cache_fplookup_final_modifying()
4681 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_final_modifying()
4682 vrele(dvp); in cache_fplookup_final_modifying()
4686 error = vn_lock(dvp, LK_EXCLUSIVE); in cache_fplookup_final_modifying()
4688 vrele(dvp); in cache_fplookup_final_modifying()
4699 error = VOP_LOOKUP(dvp, &tvp, cnp); in cache_fplookup_final_modifying()
4706 vput(dvp); in cache_fplookup_final_modifying()
4709 vput(dvp); in cache_fplookup_final_modifying()
4718 VOP_UNLOCK(dvp); in cache_fplookup_final_modifying()
4730 if (__predict_false(tvp == dvp)) { in cache_fplookup_final_modifying()
4731 vput(dvp); in cache_fplookup_final_modifying()
4742 vput(dvp); in cache_fplookup_final_modifying()
4753 vput(dvp); in cache_fplookup_final_modifying()
4759 vput(dvp); in cache_fplookup_final_modifying()
4769 VOP_UNLOCK(dvp); in cache_fplookup_final_modifying()
4793 struct vnode *dvp, *tvp; in cache_fplookup_final_withparent() local
4798 dvp = fpl->dvp; in cache_fplookup_final_withparent()
4807 dvs = vget_prep_smr(dvp); in cache_fplookup_final_withparent()
4814 vget_abort(dvp, dvs); in cache_fplookup_final_withparent()
4821 error = vget_finish(dvp, LK_EXCLUSIVE, dvs); in cache_fplookup_final_withparent()
4827 vget_finish_ref(dvp, dvs); in cache_fplookup_final_withparent()
4830 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_final_withparent()
4833 vput(dvp); in cache_fplookup_final_withparent()
4835 vrele(dvp); in cache_fplookup_final_withparent()
4844 vput(dvp); in cache_fplookup_final_withparent()
4846 vrele(dvp); in cache_fplookup_final_withparent()
4859 struct vnode *dvp, *tvp; in cache_fplookup_final() local
4863 dvp = fpl->dvp; in cache_fplookup_final()
4881 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_final()
4900 struct vnode *dvp; in cache_fplookup_degenerate() local
4907 fpl->tvp = fpl->dvp; in cache_fplookup_degenerate()
4911 dvp = fpl->dvp; in cache_fplookup_degenerate()
4930 dvs = vget_prep_smr(dvp); in cache_fplookup_degenerate()
4940 error = vget_finish(dvp, lkflags, dvs); in cache_fplookup_degenerate()
4945 vget_finish_ref(dvp, dvs); in cache_fplookup_degenerate()
4959 fpl->tvp = fpl->dvp; in cache_fplookup_emptypath()
5003 struct vnode *dvp, *tvp; in cache_fplookup_noentry() local
5009 dvp = fpl->dvp; in cache_fplookup_noentry()
5068 dvs = vget_prep_smr(dvp); in cache_fplookup_noentry()
5074 vget_finish_ref(dvp, dvs); in cache_fplookup_noentry()
5075 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_noentry()
5076 vrele(dvp); in cache_fplookup_noentry()
5080 error = vn_lock(dvp, LK_SHARED); in cache_fplookup_noentry()
5082 vrele(dvp); in cache_fplookup_noentry()
5095 error = VOP_LOOKUP(dvp, &tvp, cnp); in cache_fplookup_noentry()
5102 vput(dvp); in cache_fplookup_noentry()
5105 vput(dvp); in cache_fplookup_noentry()
5114 vput(dvp); in cache_fplookup_noentry()
5116 VOP_UNLOCK(dvp); in cache_fplookup_noentry()
5123 vput(dvp); in cache_fplookup_noentry()
5130 vput(dvp); in cache_fplookup_noentry()
5140 vput(dvp); in cache_fplookup_noentry()
5142 VOP_UNLOCK(dvp); in cache_fplookup_noentry()
5154 if (__predict_false(fpl->dvp->v_type != VDIR)) { in cache_fplookup_dot()
5164 fpl->tvp = fpl->dvp; in cache_fplookup_dot()
5167 SDT_PROBE3(vfs, namecache, lookup, hit, fpl->dvp, ".", fpl->dvp); in cache_fplookup_dot()
5182 struct vnode *dvp; in cache_fplookup_dotdot() local
5188 dvp = fpl->dvp; in cache_fplookup_dotdot()
5197 if (dvp == pr->pr_root) in cache_fplookup_dotdot()
5200 if (dvp == ndp->ni_rootdir || in cache_fplookup_dotdot()
5201 dvp == ndp->ni_topdir || in cache_fplookup_dotdot()
5202 dvp == rootvnode || in cache_fplookup_dotdot()
5204 fpl->tvp = dvp; in cache_fplookup_dotdot()
5205 fpl->tvp_seqc = vn_seqc_read_any(dvp); in cache_fplookup_dotdot()
5212 if ((dvp->v_vflag & VV_ROOT) != 0) { in cache_fplookup_dotdot()
5220 if (__predict_false(dvp->v_type != VDIR)) { in cache_fplookup_dotdot()
5225 ncp = atomic_load_consume_ptr(&dvp->v_cache_dd); in cache_fplookup_dotdot()
5247 if (__predict_false(atomic_load_ptr(&dvp->v_cache_dd) != ncp)) { in cache_fplookup_dotdot()
5359 struct vnode *dvp, *tvp; in cache_fplookup_symlink() local
5365 dvp = fpl->dvp; in cache_fplookup_symlink()
5375 mp = atomic_load_ptr(&dvp->v_mount); in cache_fplookup_symlink()
5405 fpl->dvp = cache_fpl_handle_root(fpl); in cache_fplookup_symlink()
5406 fpl->dvp_seqc = vn_seqc_read_any(fpl->dvp); in cache_fplookup_symlink()
5415 mp = atomic_load_ptr(&fpl->dvp->v_mount); in cache_fplookup_symlink()
5435 struct vnode *dvp, *tvp; in cache_fplookup_next() local
5441 dvp = fpl->dvp; in cache_fplookup_next()
5456 if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && in cache_fplookup_next()
5482 SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ncp->nc_name, tvp); in cache_fplookup_next()
5712 struct vnode *dvp; in cache_fplookup_parse() local
5718 dvp = fpl->dvp; in cache_fplookup_parse()
5737 hash = cache_get_hash_iter_start(dvp); in cache_fplookup_parse()
5758 if (fpl->hash != cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp)) { in cache_fplookup_parse()
5830 fpl->tvp = fpl->dvp; in cache_fplookup_skip_slashes()
5872 MPASS(fpl->dvp == fpl->tvp); in cache_fplookup_trailingslash()
5961 fpl->dvp = ncp->nc_dvp; in cache_fplookup_trailingslash()
5962 fpl->dvp_seqc = vn_seqc_read_any(fpl->dvp); in cache_fplookup_trailingslash()
5976 struct vnode *dvp; in cache_fplookup_failed_vexec() local
5980 dvp = fpl->dvp; in cache_fplookup_failed_vexec()
6021 if (dvp->v_type != VDIR) { in cache_fplookup_failed_vexec()
6055 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_failed_vexec()
6062 if (!vn_seqc_consistent(dvp, dvp_seqc)) { in cache_fplookup_failed_vexec()
6074 cache_fplookup_impl(struct vnode *dvp, struct cache_fpl *fpl) in cache_fplookup_impl() argument
6091 fpl->dvp = dvp; in cache_fplookup_impl()
6092 fpl->dvp_seqc = vn_seqc_read_notmodify(fpl->dvp); in cache_fplookup_impl()
6094 mp = atomic_load_ptr(&dvp->v_mount); in cache_fplookup_impl()
6104 error = VOP_FPLOOKUP_VEXEC(fpl->dvp, cnp->cn_cred); in cache_fplookup_impl()
6128 if (!vn_seqc_consistent(fpl->dvp, fpl->dvp_seqc)) { in cache_fplookup_impl()
6133 fpl->dvp = fpl->tvp; in cache_fplookup_impl()
6226 struct vnode *dvp; in cache_fplookup() local
6263 dvp = cache_fpl_handle_root(&fpl); in cache_fplookup()
6267 dvp = pwd->pwd_cdir; in cache_fplookup()
6269 error = cache_fplookup_dirfd(&fpl, &dvp); in cache_fplookup()
6276 SDT_PROBE4(vfs, namei, lookup, entry, dvp, cnp->cn_pnbuf, cnp->cn_flags, true); in cache_fplookup()
6277 error = cache_fplookup_impl(dvp, &fpl); in cache_fplookup()
6293 MPASS(fpl.dvp == NULL); in cache_fplookup()
6296 ndp->ni_dvp = fpl.dvp; in cache_fplookup()