diff options
author | phk <phk@FreeBSD.org> | 2001-04-30 21:23:05 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2001-04-30 21:23:05 +0000 |
commit | 661864d53b378d2076c6801ada1545d10df91cf1 (patch) | |
tree | 853d6dfb00645e6c7d4f2249d37f761a52a65377 /sys/fs/cd9660 | |
parent | 781e8e261425ef8cb77955e0d30240040f4abae5 (diff) | |
download | FreeBSD-src-661864d53b378d2076c6801ada1545d10df91cf1.zip FreeBSD-src-661864d53b378d2076c6801ada1545d10df91cf1.tar.gz |
Uncut&paste som bogus use of VOP_BMAP in cd9660::VOP_STRATEGY.
XXX mark some stuff which looks like further cut&paste junk.
Diffstat (limited to 'sys/fs/cd9660')
-rw-r--r-- | sys/fs/cd9660/cd9660_vnops.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/sys/fs/cd9660/cd9660_vnops.c b/sys/fs/cd9660/cd9660_vnops.c index f34ebd4..66db4a0 100644 --- a/sys/fs/cd9660/cd9660_vnops.c +++ b/sys/fs/cd9660/cd9660_vnops.c @@ -711,23 +711,17 @@ cd9660_strategy(ap) register struct buf *bp = ap->a_bp; register struct vnode *vp = bp->b_vp; register struct iso_node *ip; - int error; ip = VTOI(vp); if (vp->v_type == VBLK || vp->v_type == VCHR) panic("cd9660_strategy: spec"); if (bp->b_blkno == bp->b_lblkno) { - if ((error = - VOP_BMAP(vp, bp->b_lblkno, NULL, &bp->b_blkno, NULL, NULL))) { - bp->b_error = error; - bp->b_ioflags |= BIO_ERROR; - bufdone(bp); - return (error); - } - if ((long)bp->b_blkno == -1) + bp->b_blkno = (ip->iso_start + bp->b_lblkno) << + (ip->i_mnt->im_bshift - DEV_BSHIFT); + if ((long)bp->b_blkno == -1) /* XXX: cut&paste junk ? */ clrbuf(bp); } - if ((long)bp->b_blkno == -1) { + if ((long)bp->b_blkno == -1) { /* XXX: cut&paste junk ? */ bufdone(bp); return (0); } |