summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1997-03-05 04:54:54 +0000
committerdg <dg@FreeBSD.org>1997-03-05 04:54:54 +0000
commit1a326a5d28369d8d7ad8e16b574b68a8e9baf1e4 (patch)
treebf7b031a4feeec01c87fc094e629c33863e804ec /sys
parent6210151cea2344b71581cd95e4644bad5c1fae0b (diff)
downloadFreeBSD-src-1a326a5d28369d8d7ad8e16b574b68a8e9baf1e4.zip
FreeBSD-src-1a326a5d28369d8d7ad8e16b574b68a8e9baf1e4.tar.gz
Fixed splbio problems in vinvalbuf. Closes PR#2875, although fixed
differently by me.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/vfs_export.c10
-rw-r--r--sys/kern/vfs_subr.c10
2 files changed, 10 insertions, 10 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c
index b9ef8f3..0b487fd 100644
--- a/sys/kern/vfs_export.c
+++ b/sys/kern/vfs_export.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.78 1997/03/03 12:58:20 bde Exp $
+ * $Id: vfs_subr.c,v 1.79 1997/03/04 18:31:56 bde Exp $
*/
/*
@@ -526,9 +526,10 @@ vinvalbuf(vp, flags, cred, p, slpflag, slptimeo)
error = tsleep((caddr_t) bp,
slpflag | (PRIBIO + 1), "vinvalbuf",
slptimeo);
- splx(s);
- if (error)
+ if (error) {
+ splx(s);
return (error);
+ }
break;
}
bremfree(bp);
@@ -547,13 +548,12 @@ vinvalbuf(vp, flags, cred, p, slpflag, slptimeo)
brelse(bp);
}
}
- splx(s);
- s = splbio();
while (vp->v_numoutput > 0) {
vp->v_flag |= VBWAIT;
tsleep(&vp->v_numoutput, PVM, "vnvlbv", 0);
}
+
splx(s);
/*
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index b9ef8f3..0b487fd 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.78 1997/03/03 12:58:20 bde Exp $
+ * $Id: vfs_subr.c,v 1.79 1997/03/04 18:31:56 bde Exp $
*/
/*
@@ -526,9 +526,10 @@ vinvalbuf(vp, flags, cred, p, slpflag, slptimeo)
error = tsleep((caddr_t) bp,
slpflag | (PRIBIO + 1), "vinvalbuf",
slptimeo);
- splx(s);
- if (error)
+ if (error) {
+ splx(s);
return (error);
+ }
break;
}
bremfree(bp);
@@ -547,13 +548,12 @@ vinvalbuf(vp, flags, cred, p, slpflag, slptimeo)
brelse(bp);
}
}
- splx(s);
- s = splbio();
while (vp->v_numoutput > 0) {
vp->v_flag |= VBWAIT;
tsleep(&vp->v_numoutput, PVM, "vnvlbv", 0);
}
+
splx(s);
/*
OpenPOWER on IntegriCloud