summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ffs/ffs_vnops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs/ffs/ffs_vnops.c')
-rw-r--r--sys/ufs/ffs/ffs_vnops.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 0c5e8c4..9356ff9 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -234,11 +234,13 @@ loop:
}
if (wait) {
+ VI_LOCK(vp);
while (vp->v_numoutput) {
- vp->v_flag |= VBWAIT;
- (void) tsleep((caddr_t)&vp->v_numoutput,
- PRIBIO + 4, "ffsfsn", 0);
+ vp->v_iflag |= VI_BWAIT;
+ msleep((caddr_t)&vp->v_numoutput, VI_MTX(vp),
+ PRIBIO + 4, "ffsfsn", 0);
}
+ VI_UNLOCK(vp);
/*
* Ensure that any filesystem metatdata associated
OpenPOWER on IntegriCloud