diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2002-05-24 13:41:28 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2002-05-24 13:41:28 +0000 |
commit | 7bf02d637484379fae4ce3a6da030abeabd94e2c (patch) | |
tree | 1d195caa771249f10f88c0c0baf6927493b87b15 /sys/isofs/cd9660 | |
parent | 6b5e100a29b02706dce0b1e36a059d0222b7949e (diff) |
splbio around biodone.
Diffstat (limited to 'sys/isofs/cd9660')
-rw-r--r-- | sys/isofs/cd9660/cd9660_vnops.c | 13 |
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; |