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 majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to