aboutsummaryrefslogtreecommitdiff
path: root/sys/vm
diff options
context:
space:
mode:
authorMatthew Dillon <dillon@FreeBSD.org>2001-11-09 03:21:22 +0000
committerMatthew Dillon <dillon@FreeBSD.org>2001-11-09 03:21:22 +0000
commitb87771cd49f719c64bc93294b5c9b4ce2564e974 (patch)
tree9802118ddddea4c1a91fb9900cd455ea7ec0c714 /sys/vm
parent294af115096c4bca0fe84ddd58a6a62f5bed4649 (diff)
Notes
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vnode_pager.c9
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);