summaryrefslogtreecommitdiff
path: root/sys/adosfs
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2002-05-23 13:40:51 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2002-05-23 13:40:51 +0000
commite174b0f05ebd8b187467c29549be13fb55cf94cc (patch)
tree08a8bbc689c72bd9c9c232fbe43a95a94accd4a8 /sys/adosfs
parente802b0dff9538ca75b40649b3f974c1462098636 (diff)
protect biodone calls with splbio
Diffstat (limited to 'sys/adosfs')
-rw-r--r--sys/adosfs/advnops.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/adosfs/advnops.c b/sys/adosfs/advnops.c
index a933ad30715..86cf23adcd6 100644
--- a/sys/adosfs/advnops.c
+++ b/sys/adosfs/advnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: advnops.c,v 1.23 2002/03/14 01:26:25 millert Exp $ */
+/* $OpenBSD: advnops.c,v 1.24 2002/05/23 13:40:50 art Exp $ */
/* $NetBSD: advnops.c,v 1.32 1996/10/13 02:52:09 christos Exp $ */
/*
@@ -412,6 +412,7 @@ adosfs_strategy(v)
struct anode *ap;
struct vnode *vp;
int error;
+ int s;
#ifdef ADOSFS_DIAGNOSTIC
advopprint(sp);
@@ -420,7 +421,9 @@ adosfs_strategy(v)
bp = sp->a_bp;
if (bp->b_vp == NULL) {
bp->b_flags |= B_ERROR;
+ s = splbio();
biodone(bp);
+ splx(s);
error = EIO;
goto reterr;
}
@@ -430,7 +433,9 @@ adosfs_strategy(v)
error = VOP_BMAP(vp, bp->b_lblkno, NULL, &bp->b_blkno, NULL);
if (error) {
bp->b_flags |= B_ERROR;
+ s = splbio();
biodone(bp);
+ splx(s);
goto reterr;
}
}