diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/vfs_subr.c | 5 | ||||
-rw-r--r-- | sys/kern/vfs_vnops.c | 3 |
2 files changed, 2 insertions, 6 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 2193635..d74c12c 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1919,7 +1919,6 @@ vget(vp, flags, td) if (vp->v_iflag & VI_XLOCK && vp->v_vxproc != curthread) { vp->v_iflag |= VI_XWANT; msleep(vp, VI_MTX(vp), PINOD | PDROP, "vget", 0); - VI_UNLOCK(vp); return (ENOENT); } @@ -2412,7 +2411,6 @@ vop_revoke(ap) vp->v_iflag |= VI_XWANT; msleep(vp, VI_MTX(vp), PINOD | PDROP, "vop_revokeall", 0); - VI_UNLOCK(vp); return (0); } VI_UNLOCK(vp); @@ -2482,8 +2480,7 @@ vgonel(vp, td) ASSERT_VI_LOCKED(vp); if (vp->v_iflag & VI_XLOCK) { vp->v_iflag |= VI_XWANT; - VI_UNLOCK(vp); - tsleep(vp, PINOD | PDROP, "vgone", 0); + msleep(vp, VI_MTX(vp), PINOD | PDROP, "vgone", 0); return; } diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index f4aab01..0c106be 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -850,8 +850,7 @@ debug_vn_lock(vp, flags, td, filename, line) VI_LOCK(vp); if ((vp->v_iflag & VI_XLOCK) && vp->v_vxproc != curthread) { vp->v_iflag |= VI_XWANT; - msleep(vp, VI_MTX(vp), PINOD | PDROP, - "vn_lock", 0); + msleep(vp, VI_MTX(vp), PINOD, "vn_lock", 0); error = ENOENT; if ((flags & LK_RETRY) == 0) { VI_UNLOCK(vp); |