Index: head/sys/kern/vfs_lookup.c =================================================================== --- head/sys/kern/vfs_lookup.c +++ head/sys/kern/vfs_lookup.c @@ -1305,7 +1305,6 @@ relookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp) { struct vnode *dp = NULL; /* the directory we are searching */ - int wantparent; /* 1 => wantparent or lockparent flag */ int rdonly; /* lookup read-only flag bit */ int error = 0; @@ -1314,8 +1313,8 @@ /* * Setup: break out flag bits into variables. */ - wantparent = cnp->cn_flags & (LOCKPARENT|WANTPARENT); - KASSERT(wantparent, ("relookup: parent not wanted.")); + KASSERT((cnp->cn_flags & (LOCKPARENT | WANTPARENT)) != 0, + ("relookup: parent not wanted")); rdonly = cnp->cn_flags & RDONLY; cnp->cn_flags &= ~ISSYMLINK; dp = dvp; @@ -1406,13 +1405,8 @@ /* * Set the parent lock/ref state to the requested state. */ - if ((cnp->cn_flags & LOCKPARENT) == 0 && dvp != dp) { - if (wantparent) - VOP_UNLOCK(dvp); - else - vput(dvp); - } else if (!wantparent) - vrele(dvp); + if ((cnp->cn_flags & LOCKPARENT) == 0 && dvp != dp) + VOP_UNLOCK(dvp); /* * Check for symbolic link */