diff options
author | dillon <dillon@FreeBSD.org> | 1999-09-20 23:27:58 +0000 |
---|---|---|
committer | dillon <dillon@FreeBSD.org> | 1999-09-20 23:27:58 +0000 |
commit | 3bddba795147da5c018578644f1757f6e636baf5 (patch) | |
tree | db5c683fc7317e476f83f4d362edb5db22f5cbe4 /sys/isofs/cd9660/cd9660_vnops.c | |
parent | 163338fbe7a66e7733f929fb8a033966c8e69b0d (diff) | |
download | FreeBSD-src-3bddba795147da5c018578644f1757f6e636baf5.zip FreeBSD-src-3bddba795147da5c018578644f1757f6e636baf5.tar.gz |
More removals of vnode->v_lastr, replaced by preexisting seqcount
heuristic to detect sequential operation.
VM-related forced clustering code removed from ufs in preparation for a
commit to vm/vm_fault.c that does it more generally.
Reviewed by: David Greenman <dg@root.com>, Alan Cox <alc@cs.rice.edu>
Diffstat (limited to 'sys/isofs/cd9660/cd9660_vnops.c')
-rw-r--r-- | sys/isofs/cd9660/cd9660_vnops.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/isofs/cd9660/cd9660_vnops.c b/sys/isofs/cd9660/cd9660_vnops.c index ee2528b..9b2eac2 100644 --- a/sys/isofs/cd9660/cd9660_vnops.c +++ b/sys/isofs/cd9660/cd9660_vnops.c @@ -275,8 +275,11 @@ cd9660_read(ap) daddr_t lbn, rablock; off_t diff; int rasize, error = 0; + int seqcount; long size, n, on; + seqcount = ap->a_ioflag >> 16; + if (uio->uio_resid == 0) return (0); if (uio->uio_offset < 0) @@ -303,7 +306,7 @@ cd9660_read(ap) else error = bread(vp, lbn, size, NOCRED, &bp); } else { - if (vp->v_lastr + 1 == lbn && + if (seqcount > 1 && lblktosize(imp, rablock) < ip->i_size) { rasize = blksize(imp, ip, rablock); error = breadn(vp, lbn, size, &rablock, @@ -311,7 +314,6 @@ cd9660_read(ap) } else error = bread(vp, lbn, size, NOCRED, &bp); } - vp->v_lastr = lbn; n = min(n, size - bp->b_resid); if (error) { brelse(bp); |