summaryrefslogtreecommitdiffstats
path: root/sys/isofs/cd9660/cd9660_vnops.c
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>1999-09-20 23:27:58 +0000
committerdillon <dillon@FreeBSD.org>1999-09-20 23:27:58 +0000
commit3bddba795147da5c018578644f1757f6e636baf5 (patch)
treedb5c683fc7317e476f83f4d362edb5db22f5cbe4 /sys/isofs/cd9660/cd9660_vnops.c
parent163338fbe7a66e7733f929fb8a033966c8e69b0d (diff)
downloadFreeBSD-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.c6
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);
OpenPOWER on IntegriCloud