summaryrefslogtreecommitdiff
path: root/sys/isofs/cd9660
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2002-05-24 13:41:28 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2002-05-24 13:41:28 +0000
commit7bf02d637484379fae4ce3a6da030abeabd94e2c (patch)
tree1d195caa771249f10f88c0c0baf6927493b87b15 /sys/isofs/cd9660
parent6b5e100a29b02706dce0b1e36a059d0222b7949e (diff)
splbio around biodone.
Diffstat (limited to 'sys/isofs/cd9660')
-rw-r--r--sys/isofs/cd9660/cd9660_vnops.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/isofs/cd9660/cd9660_vnops.c b/sys/isofs/cd9660/cd9660_vnops.c
index 317b47885e8..20a4854af8f 100644
--- a/sys/isofs/cd9660/cd9660_vnops.c
+++ b/sys/isofs/cd9660/cd9660_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cd9660_vnops.c,v 1.22 2002/05/23 14:35:20 art Exp $ */
+/* $OpenBSD: cd9660_vnops.c,v 1.23 2002/05/24 13:41:27 art Exp $ */
/* $NetBSD: cd9660_vnops.c,v 1.42 1997/10/16 23:56:57 christos Exp $ */
/*-
@@ -895,10 +895,11 @@ cd9660_strategy(v)
struct vop_strategy_args /* {
struct buf *a_bp;
} */ *ap = v;
- register struct buf *bp = ap->a_bp;
- register struct vnode *vp = bp->b_vp;
- register struct iso_node *ip;
+ struct buf *bp = ap->a_bp;
+ struct vnode *vp = bp->b_vp;
+ struct iso_node *ip;
int error;
+ int s;
ip = VTOI(vp);
if (vp->v_type == VBLK || vp->v_type == VCHR)
@@ -908,14 +909,18 @@ cd9660_strategy(v)
if (error) {
bp->b_error = error;
bp->b_flags |= B_ERROR;
+ s = splbio();
biodone(bp);
+ splx(s);
return (error);
}
if ((long)bp->b_blkno == -1)
clrbuf(bp);
}
if ((long)bp->b_blkno == -1) {
+ s = splbio();
biodone(bp);
+ splx(s);
return (0);
}
vp = ip->i_devvp;