diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index f497d41..c8d78aa 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -683,7 +683,7 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage) { vm_object_t object; vm_offset_t kva; - off_t foff, tfoff, nextoff; + off_t foff, tfoff; int i, j, size, bsize, first; daddr_t firstaddr, reqblock; struct bufobj *bo; @@ -938,38 +938,21 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage) relpbuf(bp, &vnode_pbuf_freecnt); VM_OBJECT_LOCK(object); - for (i = 0, tfoff = foff; i < count; i++, tfoff = nextoff) { + for (i = 0, tfoff = foff; i < count; i++, tfoff += PAGE_SIZE) { vm_page_t mt; - nextoff = tfoff + PAGE_SIZE; mt = m[i]; - if (nextoff <= object->un_pager.vnp.vnp_size) { - /* - * Read filled up entire page. - */ - mt->valid = VM_PAGE_BITS_ALL; - KASSERT(mt->dirty == 0, - ("vnode_pager_generic_getpages: page %p is dirty", - mt)); - KASSERT(!pmap_page_is_mapped(mt), - ("vnode_pager_generic_getpages: page %p is mapped", - mt)); - } else { - /* - * Read did not fill up entire page. - * - * Currently we do not set the entire page valid, - * we just try to clear the piece that we couldn't - * read. - */ - vm_page_set_valid(mt, 0, - object->un_pager.vnp.vnp_size - tfoff); - KASSERT((mt->dirty & vm_page_bits(0, - object->un_pager.vnp.vnp_size - tfoff)) == 0, - ("vnode_pager_generic_getpages: page %p is dirty", - mt)); - } + /* + * Read filled up entire page. + */ + mt->valid = VM_PAGE_BITS_ALL; + KASSERT(mt->dirty == 0, + ("vnode_pager_generic_getpages: page %p is dirty", + mt)); + KASSERT(!pmap_page_is_mapped(mt), + ("vnode_pager_generic_getpages: page %p is mapped", + mt)); if (i != reqpage) {