diff options
| author | enami <enami@NetBSD.org> | 2000-09-05 05:13:43 +0000 |
|---|---|---|
| committer | enami <enami@NetBSD.org> | 2000-09-05 05:13:43 +0000 |
| commit | 445cbcb8c19a4125a822fdd2d5cb0ea791ffac8f (patch) | |
| tree | fb1516638f87b6b6fe4fe484bb182020f12ddeeb | |
| parent | ef2b36122280917778bfcacac22786c67c367662 (diff) | |
Accquire vnode interlock while playing with flags to see if there
is someone waiting this vnode.
| -rw-r--r-- | sys/kern/vfs_subr.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index d19183ce7e2..730f6d65485 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_subr.c,v 1.138 2000/08/31 14:41:35 bouyer Exp $ */ +/* $NetBSD: vfs_subr.c,v 1.139 2000/09/05 05:13:43 enami Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -1509,11 +1509,14 @@ vclean(vp, flags, p) */ vp->v_op = dead_vnodeop_p; vp->v_tag = VT_NON; + simple_lock(&vp->v_interlock); vp->v_flag &= ~VXLOCK; if (vp->v_flag & VXWANT) { vp->v_flag &= ~VXWANT; + simple_unlock(&vp->v_interlock); wakeup((caddr_t)vp); - } + } else + simple_unlock(&vp->v_interlock); } /* |
