Index: sys/kern/vfs_bio.c =================================================================== --- sys/kern/vfs_bio.c +++ sys/kern/vfs_bio.c @@ -4188,6 +4188,7 @@ } return; } + newbsize = round_page(newbsize); vm_hold_free_pages(bp, newbsize); bufspace_adjust(bp, newbsize); } @@ -4219,6 +4220,8 @@ return; } + newbsize = round_page(newbsize); + /* * If the buffer is growing on its other-than-first * allocation then we revert to the page-allocation @@ -4232,7 +4235,6 @@ bp->b_data = bp->b_kvabase; bufmallocadjust(bp, 0); bp->b_flags &= ~B_MALLOC; - newbsize = round_page(newbsize); } vm_hold_load_pages(bp, (vm_offset_t) bp->b_data + bp->b_bufsize, (vm_offset_t) bp->b_data + newbsize); @@ -4272,8 +4274,6 @@ newbsize = roundup2(size, DEV_BSIZE); if ((bp->b_flags & B_VMIO) == 0) { - if ((bp->b_flags & B_MALLOC) == 0) - newbsize = round_page(newbsize); /* * Just get anonymous memory from the kernel. Don't * mess with B_CACHE.