Lines Matching defs:a_dvp
725 * a_dvp -> a_vp -> b_dvp -> b_vp,
729 * a_dvp -> b_dvp -> b_vp -> a_vp,
738 * b_dvp must not be an ancestor of a_dvp, although a_dvp may be an
744 * a_dvp and b_dvp must be referenced.
746 * On entry, a_dvp and b_dvp are unlocked.
749 * . a_dvp and b_dvp are locked,
759 * On failure, a_dvp and b_dvp are left unlocked, and *a_dirent_ret,
766 struct vnode *a_dvp, struct componentname *a_cnp, bool a_missing_ok,
776 KASSERT(a_dvp != NULL);
782 KASSERT(a_dvp != b_dvp);
784 KASSERT(a_dvp->v_type == VDIR);
786 KASSERT(a_dvp->v_mount == mp);
791 * 1. Lock a_dvp.
793 error = ops->gro_lock_directory(mp, a_dvp);
798 if (a_dvp->v_mountedhere != NULL) {
806 error = ops->gro_lookup(mp, a_dvp, a_cnp, a_de_ret, &a_vp);
816 if (a_vp == a_dvp) {
828 KASSERT(a_vp != a_dvp);
834 * We already ruled out a_vp == a_dvp (i.e., a_cnp is `.'), so
889 * b_dvp must not be an ancestor of a_dvp, so if we
890 * find b_dvp/b_vp=a_dvp/a_vp something is wrong.
892 if (b_vp == a_dvp) {
903 KASSERT(b_vp != a_dvp);
934 KASSERT(VOP_ISLOCKED(a_dvp) == LK_EXCLUSIVE);
956 fail1: VOP_UNLOCK(a_dvp);