diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2002-08-23 00:32:03 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2002-08-23 00:32:03 +0000 |
commit | ad32f726db85cda48ed3d72ca0607cc285f7b703 (patch) | |
tree | f91c7e89a6e0ac1a5598b799b1b68e0ed7c343a4 | |
parent | 95289fb2ec3abb89c8f3783edf6714b38c3b0a22 (diff) | |
download | src-ad32f726db85cda48ed3d72ca0607cc285f7b703.tar.gz src-ad32f726db85cda48ed3d72ca0607cc285f7b703.zip |
- Fix a mistake in my last few commits. The PDROP flag stops msleep from
re-acquiring the mutex.
Pointy hat to: me
Noticed by: tegge
Notes
Notes:
svn path=/head/; revision=102297
-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 219363572cbd..d74c12c9bc48 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 f4aab013d9f4..0c106be9218f 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); |