summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_page.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-06-25 22:01:12 +0000
committerjeff <jeff@FreeBSD.org>2002-06-25 22:01:12 +0000
commit7083248242e1c7a83b28b1fc65d49288d0194900 (patch)
tree6911baf7cc0bdde0a2e7f08b609c4939ae15e41d /sys/vm/vm_page.c
parente9c6c8e0fd0524a17ece1b6f788a73d3de264304 (diff)
downloadFreeBSD-src-7083248242e1c7a83b28b1fc65d49288d0194900.zip
FreeBSD-src-7083248242e1c7a83b28b1fc65d49288d0194900.tar.gz
Turn VM_ALLOC_ZERO into a flag.
Submitted by: tegge Reviewed by: dillon
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r--sys/vm/vm_page.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index d984e24..0e5380c 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -825,6 +825,7 @@ vm_page_t
vm_page_alloc(vm_object_t object, vm_pindex_t pindex, int page_req)
{
vm_page_t m = NULL;
+ boolean_t prefer_zero;
int s;
GIANT_REQUIRED;
@@ -832,6 +833,9 @@ vm_page_alloc(vm_object_t object, vm_pindex_t pindex, int page_req)
KASSERT(!vm_page_lookup(object, pindex),
("vm_page_alloc: page already allocated"));
+ prefer_zero = (page_req & VM_ALLOC_ZERO) != 0 ? TRUE : FALSE;
+ page_req &= ~VM_ALLOC_ZERO;
+
/*
* The pager is allowed to eat deeper into the free page list.
*/
@@ -847,10 +851,8 @@ loop:
* Allocate from the free queue if there are plenty of pages
* in it.
*/
- if (page_req == VM_ALLOC_ZERO)
- m = vm_page_select_free(object, pindex, TRUE);
- else
- m = vm_page_select_free(object, pindex, FALSE);
+
+ m = vm_page_select_free(object, pindex, prefer_zero);
} else if (
(page_req == VM_ALLOC_SYSTEM &&
cnt.v_cache_count == 0 &&
OpenPOWER on IntegriCloud