diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2002-05-23 13:40:51 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2002-05-23 13:40:51 +0000 |
commit | e174b0f05ebd8b187467c29549be13fb55cf94cc (patch) | |
tree | 08a8bbc689c72bd9c9c232fbe43a95a94accd4a8 /sys/adosfs | |
parent | e802b0dff9538ca75b40649b3f974c1462098636 (diff) |
protect biodone calls with splbio
Diffstat (limited to 'sys/adosfs')
-rw-r--r-- | sys/adosfs/advnops.c | 7 |
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; } } |