diff options
author | dg <dg@FreeBSD.org> | 1997-03-05 04:54:54 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1997-03-05 04:54:54 +0000 |
commit | 1a326a5d28369d8d7ad8e16b574b68a8e9baf1e4 (patch) | |
tree | bf7b031a4feeec01c87fc094e629c33863e804ec /sys | |
parent | 6210151cea2344b71581cd95e4644bad5c1fae0b (diff) | |
download | FreeBSD-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.c | 10 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 10 |
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); /* |