diff options
Diffstat (limited to 'sys/isofs')
-rw-r--r-- | sys/isofs/cd9660/cd9660_node.h | 3 | ||||
-rw-r--r-- | sys/isofs/cd9660/cd9660_vnops.c | 10 |
2 files changed, 7 insertions, 6 deletions
diff --git a/sys/isofs/cd9660/cd9660_node.h b/sys/isofs/cd9660/cd9660_node.h index 357d1b414f4..6990d0872a3 100644 --- a/sys/isofs/cd9660/cd9660_node.h +++ b/sys/isofs/cd9660/cd9660_node.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cd9660_node.h,v 1.7 1998/08/21 23:31:34 csapuntz Exp $ */ +/* $OpenBSD: cd9660_node.h,v 1.8 2001/02/23 14:42:38 csapuntz Exp $ */ /* $NetBSD: cd9660_node.h,v 1.15 1997/04/11 21:52:01 kleink Exp $ */ /*- @@ -94,6 +94,7 @@ struct iso_node { long iso_start; /* actual start of data of file (may be different */ /* from iso_extent, if file has extended attributes) */ ISO_RRIP_INODE inode; + struct cluster_info i_ci; }; #define i_forw i_chain[0] diff --git a/sys/isofs/cd9660/cd9660_vnops.c b/sys/isofs/cd9660/cd9660_vnops.c index 86fb0318fb5..65d3d7f1289 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.12 1999/11/13 03:48:09 angelos Exp $ */ +/* $OpenBSD: cd9660_vnops.c,v 1.13 2001/02/23 14:42:38 csapuntz Exp $ */ /* $NetBSD: cd9660_vnops.c,v 1.42 1997/10/16 23:56:57 christos Exp $ */ /*- @@ -343,12 +343,12 @@ cd9660_read(v) rablock = lbn + 1; if (cd9660_doclusterread) { if (lblktosize(imp, rablock) <= ip->i_size) - error = cluster_read(vp, (off_t)ip->i_size, - lbn, size, NOCRED, &bp); + error = cluster_read(vp, &ip->i_ci, + (off_t)ip->i_size, lbn, size, NOCRED, &bp); else error = bread(vp, lbn, size, NOCRED, &bp); } else { - if (vp->v_lastr + 1 == lbn && + if (ip->i_ci.ci_lastr + 1 == lbn && lblktosize(imp, rablock) < ip->i_size) { rasize = blksize(imp, ip, rablock); error = breadn(vp, lbn, size, &rablock, @@ -356,7 +356,7 @@ cd9660_read(v) } else error = bread(vp, lbn, size, NOCRED, &bp); } - vp->v_lastr = lbn; + ip->i_ci.ci_lastr = lbn; n = min(n, size - bp->b_resid); if (error) { brelse(bp); |