Page MenuHomeFreeBSD

D34837.id107224.diff
No OneTemporary

D34837.id107224.diff

diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -4852,7 +4852,8 @@
void
vfs_bio_clrbuf(struct buf *bp)
{
- int i, j, mask, sa, ea, slide;
+ int i, j, sa, ea, slide, zbits;
+ vm_page_bits_t mask;
if ((bp->b_flags & (B_VMIO | B_MALLOC)) != B_VMIO) {
clrbuf(bp);
@@ -4871,7 +4872,9 @@
if (bp->b_pages[i] == bogus_page)
continue;
j = sa / DEV_BSIZE;
- mask = ((1 << ((ea - sa) / DEV_BSIZE)) - 1) << j;
+ zbits = (sizeof(vm_page_bits_t) * NBBY) -
+ (ea - sa) / DEV_BSIZE;
+ mask = (VM_PAGE_BITS_ALL >> zbits) << j;
if ((bp->b_pages[i]->valid & mask) == mask)
continue;
if ((bp->b_pages[i]->valid & mask) == 0)

File Metadata

Mime Type
text/plain
Expires
Fri, Aug 14, 12:22 PM (6 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36723089
Default Alt Text
D34837.id107224.diff (703 B)

Event Timeline