diff options
| author | David Greenman <dg@FreeBSD.org> | 1996-01-06 23:23:02 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1996-01-06 23:23:02 +0000 |
| commit | 2199f986f18d033da6a2f2c641461a2bf4f274cb (patch) | |
| tree | dd3149dbd2983fcb1869f1ad81dff98d55e62732 /sys/kern | |
| parent | 659f340ca4a38fe26b772df7362b753a2241f3fc (diff) | |
Notes
Diffstat (limited to 'sys/kern')
| -rw-r--r-- | sys/kern/vfs_bio.c | 24 |
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); |
