git: 1e8c2cb328bb - main - vnode_pager: use ptoa(), atop()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 23 Dec 2025 18:35:51 UTC
The branch main has been updated by dougm:
URL: https://cgit.FreeBSD.org/src/commit/?id=1e8c2cb328bbb2d685acbcd269db32ad3ec45f26
commit 1e8c2cb328bbb2d685acbcd269db32ad3ec45f26
Author: Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2025-12-23 18:34:20 +0000
Commit: Doug Moore <dougm@FreeBSD.org>
CommitDate: 2025-12-23 18:34:20 +0000
vnode_pager: use ptoa(), atop()
In vnode_pager.c, use ptoa() or atop() instead of arithmetic with
PAGE_SIZE or PAGE_SHIFT.
Reviewed by: alc, kib
Differential Revision: https://reviews.freebsd.org/D49330
---
sys/vm/vnode_pager.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index 9693cb15f80d..040b4037df15 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -388,7 +388,7 @@ vnode_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before,
return FALSE;
bsize = vp->v_mount->mnt_stat.f_iosize;
- pagesperblock = bsize / PAGE_SIZE;
+ pagesperblock = atop(bsize);
blocksperpage = 0;
if (pagesperblock > 0) {
reqblock = pindex / pagesperblock;
@@ -645,8 +645,8 @@ vnode_pager_addr(struct vnode *vp, vm_ooffset_t address, daddr_t *rtaddress,
*rtaddress += voffset / DEV_BSIZE;
if (run) {
*run += 1;
- *run *= bsize / PAGE_SIZE;
- *run -= voffset / PAGE_SIZE;
+ *run *= atop(bsize);
+ *run -= atop(voffset);
}
}
@@ -909,7 +909,7 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, int count,
object = vp->v_object;
foff = IDX_TO_OFF(m[0]->pindex);
bsize = vp->v_mount->mnt_stat.f_iosize;
- pagesperblock = bsize / PAGE_SIZE;
+ pagesperblock = atop(bsize);
KASSERT(foff < object->un_pager.vnp.vnp_size,
("%s: page %p offset beyond vp %p size", __func__, m[0], vp));
@@ -991,7 +991,7 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, int count,
bp->b_blkno += (foff % bsize) / DEV_BSIZE;
/* Recalculate blocks available after/before to pages. */
- poff = (foff % bsize) / PAGE_SIZE;
+ poff = atop(foff % bsize);
before *= pagesperblock;
before += poff;
after *= pagesperblock;
@@ -1172,14 +1172,14 @@ vnode_pager_generic_getpages_done(struct buf *bp)
runningbufwakeup(bp);
- if (error == 0 && bp->b_bcount != bp->b_npages * PAGE_SIZE) {
+ if (error == 0 && bp->b_bcount != ptoa(bp->b_npages)) {
if (!buf_mapped(bp)) {
bp->b_data = bp->b_kvabase;
pmap_qenter((vm_offset_t)bp->b_data, bp->b_pages,
bp->b_npages);
}
bzero(bp->b_data + bp->b_bcount,
- PAGE_SIZE * bp->b_npages - bp->b_bcount);
+ ptoa(bp->b_npages) - bp->b_bcount);
}
if (buf_mapped(bp)) {
pmap_qremove((vm_offset_t)bp->b_data, bp->b_npages);
@@ -1258,7 +1258,7 @@ vnode_pager_putpages(vm_object_t object, vm_page_t *m, int count,
{
int rtval __diagused;
struct vnode *vp;
- int bytes = count * PAGE_SIZE;
+ int bytes = ptoa(count);
/*
* Force synchronous operation if we are extremely low on memory
@@ -1329,7 +1329,7 @@ vnode_pager_generic_putpages(struct vnode *vp, vm_page_t *ma, int bytecount,
static int curfail;
object = vp->v_object;
- count = bytecount / PAGE_SIZE;
+ count = atop(bytecount);
for (i = 0; i < count; i++)
rtvals[i] = VM_PAGER_ERROR;
@@ -1342,7 +1342,7 @@ vnode_pager_generic_putpages(struct vnode *vp, vm_page_t *ma, int bytecount,
return (VM_PAGER_BAD);
}
- maxsize = count * PAGE_SIZE;
+ maxsize = ptoa(count);
ncount = count;
poffset = IDX_TO_OFF(ma[0]->pindex);