aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1996-01-06 23:23:02 +0000
committerDavid Greenman <dg@FreeBSD.org>1996-01-06 23:23:02 +0000
commit2199f986f18d033da6a2f2c641461a2bf4f274cb (patch)
treedd3149dbd2983fcb1869f1ad81dff98d55e62732 /sys/kern
parent659f340ca4a38fe26b772df7362b753a2241f3fc (diff)
Notes
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_bio.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 28feaee5b0d6..89d3f504498e 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -18,7 +18,7 @@
* 5. Modifications may be freely made to this file if the above conditions
* are met.
*
- * $Id: vfs_bio.c,v 1.80 1996/01/04 06:09:00 davidg Exp $
+ * $Id: vfs_bio.c,v 1.81 1996/01/05 20:12:33 wollman Exp $
*/
/*
@@ -1605,14 +1605,14 @@ vfs_bio_clrbuf(struct buf *bp) {
* not associated with a file object.
*/
void
-vm_hold_load_pages(struct buf * bp, vm_offset_t froma, vm_offset_t toa)
+vm_hold_load_pages(struct buf * bp, vm_offset_t from, vm_offset_t to)
{
vm_offset_t pg;
vm_page_t p;
- vm_offset_t from = round_page(froma);
- vm_offset_t to = round_page(toa);
- for (pg = from; pg < to; pg += PAGE_SIZE) {
+ to = round_page(to);
+
+ for (pg = round_page(from); pg < to; pg += PAGE_SIZE) {
tryagain:
@@ -1624,22 +1624,24 @@ tryagain:
}
vm_page_wire(p);
pmap_kenter(pg, VM_PAGE_TO_PHYS(p));
- bp->b_pages[((caddr_t) pg - bp->b_data) >> PAGE_SHIFT] = p;
+ bp->b_pages[(pg - trunc_page(bp->b_data)) >> PAGE_SHIFT] = p;
PAGE_WAKEUP(p);
bp->b_npages++;
}
}
void
-vm_hold_free_pages(struct buf * bp, vm_offset_t froma, vm_offset_t toa)
+vm_hold_free_pages(struct buf * bp, vm_offset_t from, vm_offset_t to)
{
vm_offset_t pg;
vm_page_t p;
- vm_offset_t from = round_page(froma);
- vm_offset_t to = round_page(toa);
+ int index;
+
+ from = round_page(from);
+ to = round_page(to);
+ index = (from - trunc_page(bp->b_data)) >> PAGE_SHIFT;
- for (pg = from; pg < to; pg += PAGE_SIZE) {
- int index = ((caddr_t) pg - bp->b_data) >> PAGE_SHIFT;
+ for (pg = from; pg < to; pg += PAGE_SIZE, index++) {
p = bp->b_pages[index];
bp->b_pages[index] = 0;
pmap_kremove(pg);