summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_pager.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_pager.h')
-rw-r--r--sys/vm/vm_pager.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/vm/vm_pager.h b/sys/vm/vm_pager.h
index 82b6574..aff14ab 100644
--- a/sys/vm/vm_pager.h
+++ b/sys/vm/vm_pager.h
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vm_pager.h 8.4 (Berkeley) 1/12/94
- * $Id: vm_pager.h,v 1.20 1999/01/24 02:32:15 dillon Exp $
+ * $Id: vm_pager.h,v 1.21 1999/03/14 09:20:00 julian Exp $
*/
/*
@@ -110,6 +110,14 @@ void flushchainbuf(struct buf *nbp);
void waitchainbuf(struct buf *bp, int count, int done);
void autochaindone(struct buf *bp);
+/*
+ * vm_page_get_pages:
+ *
+ * Retrieve pages from the VM system in order to map them into an object
+ * ( or into VM space somewhere ). If the pagein was successful, we
+ * must fully validate it.
+ */
+
static __inline int
vm_pager_get_pages(
vm_object_t object,
@@ -117,7 +125,13 @@ vm_pager_get_pages(
int count,
int reqpage
) {
- return ((*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage));
+ int r;
+
+ r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage);
+ if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) {
+ vm_page_zero_invalid(m[reqpage], TRUE);
+ }
+ return(r);
}
static __inline void
OpenPOWER on IntegriCloud