diff options
| author | Matthew Dillon <dillon@FreeBSD.org> | 2001-11-09 03:21:22 +0000 |
|---|---|---|
| committer | Matthew Dillon <dillon@FreeBSD.org> | 2001-11-09 03:21:22 +0000 |
| commit | b87771cd49f719c64bc93294b5c9b4ce2564e974 (patch) | |
| tree | 9802118ddddea4c1a91fb9900cd455ea7ec0c714 /sys/vm | |
| parent | 294af115096c4bca0fe84ddd58a6a62f5bed4649 (diff) | |
Notes
Diffstat (limited to 'sys/vm')
| -rw-r--r-- | sys/vm/vnode_pager.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 870b431956cd..4f08ad8496ab 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -419,12 +419,17 @@ vnode_pager_input_smlfs(object, m) kva = vm_pager_map_page(m); for (i = 0; i < PAGE_SIZE / bsize; i++) { + vm_ooffset_t address; if (vm_page_bits(i * bsize, bsize) & m->valid) continue; - fileaddr = vnode_pager_addr(vp, - IDX_TO_OFF(m->pindex) + i * bsize, (int *)0); + address = IDX_TO_OFF(m->pindex) + i * bsize; + if (address >= object->un_pager.vnp.vnp_size) { + fileaddr = -1; + } else { + fileaddr = vnode_pager_addr(vp, address, NULL); + } if (fileaddr != -1) { bp = getpbuf(&vnode_pbuf_freecnt); |
