Home | History | Annotate | Download | only in genfs

Lines Matching defs:b_vp

725  *	a_dvp -> a_vp -> b_dvp -> b_vp,
729 * a_dvp -> b_dvp -> b_vp -> a_vp,
734 * locked when we lookup/lock/unlock b_vp if they turn out to be the
755 * . *b_vp is filled either with null or with the corresponding vnode,
757 * . the only pair of vnodes that may be identical is a_vp and b_vp.
760 * *a_vp, *b_dirent_ret, and *b_vp are left alone.
771 struct vnode *a_vp, *b_vp;
840 * b_vp in case (a) the file system can only lookup/lock/unlock
841 * and (b) b_vp turns out to be the same file as a_vp due to
843 * we've looked up b_vp. Fortunately, if a_vp is a
871 * 5. Lookup b_vp. May lock/unlock b_vp.
873 error = ops->gro_lookup(mp, b_dvp, b_cnp, b_de_ret, &b_vp);
876 b_vp = NULL;
880 KASSERT(b_vp != NULL);
883 if (b_vp == b_dvp) {
890 * find b_dvp/b_vp=a_dvp/a_vp something is wrong.
892 if (b_vp == a_dvp) {
902 KASSERT(b_vp != b_dvp);
903 KASSERT(b_vp != a_dvp);
909 * incommensurate with b_vp, and so we can safely lock it at
919 * 7. Lock b_vp, if it is not a_vp.
921 * b_vp and a_vp may the same inode if they are hard links to
924 if ((b_vp != NULL) && (b_vp != a_vp)) {
925 vn_lock(b_vp, LK_EXCLUSIVE | LK_RETRY);
926 KASSERT(b_vp->v_mount == mp);
928 if ((b_vp->v_type == VDIR) && (b_vp->v_mountedhere != NULL)) {
937 KASSERT(b_missing_ok || (b_vp != NULL));
939 KASSERT((b_vp == NULL) || (VOP_ISLOCKED(b_vp) == LK_EXCLUSIVE));
942 *b_vp_ret = b_vp;
945 fail6: if ((b_vp != NULL) && (b_vp != a_vp))
946 VOP_UNLOCK(b_vp);
949 fail5: if (b_vp != NULL)
950 vrele(b_vp);