The check is correct and should be there, the B_CACHE bit was cleared because
I made a mistake when setting the valid bit in the vm page.
Index: vfs_bio.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/vfs_bio.c,v
retrieving revision 1.192
diff -u -r1.192 vfs_bio.c
--- vfs_bio.c 1999/01/12 11:59:34 1.192
+++ vfs_bio.c 1999/01/18 14:45:33
@@ -2171,7 +2171,7 @@
(vm_offset_t) (soff & PAGE_MASK),
(vm_offset_t) (eoff - soff));
sv = (bp->b_offset + bp->b_validoff + DEV_BSIZE - 1) &
~(DEV_BSIZE - 1);
- ev = (bp->b_offset + bp->b_validend) & ~(DEV_BSIZE - 1);
+ ev = (bp->b_offset + bp->b_validend + DEV_BSIZE - 1) &
~(DEV_BSIZE - 1);
soff = qmax(sv, soff);
eoff = qmin(ev, eoff);
}
Note the calculation of ev, the original code was a round-up and I changed it
to round-down in my -r1.188 commit (I thought it was a bug in the original
code, but it was actually me who didn't understand the nfs code well enough).
-lq
To Unsubscribe: send mail to [email protected]
with "unsubscribe freebsd-current" in the body of the message