summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_reserv.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2012-04-11 14:54:06 +0000
committerattilio <attilio@FreeBSD.org>2012-04-11 14:54:06 +0000
commitaf795c2c10fe9ee686f0e02d3c56c3350602d5d0 (patch)
treee2a5d6a39824dcdd6518359370327e8d1d4d6823 /sys/vm/vm_reserv.c
parent9d7ad0cef04b320f6fa9337561e751bbb3380b35 (diff)
parent5aa865afa50a2b97e5a4ad1f19def0b2e61ebccf (diff)
downloadFreeBSD-src-af795c2c10fe9ee686f0e02d3c56c3350602d5d0.zip
FreeBSD-src-af795c2c10fe9ee686f0e02d3c56c3350602d5d0.tar.gz
MFC
Diffstat (limited to 'sys/vm/vm_reserv.c')
-rw-r--r--sys/vm/vm_reserv.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/vm/vm_reserv.c b/sys/vm/vm_reserv.c
index df08aac..10db93c 100644
--- a/sys/vm/vm_reserv.c
+++ b/sys/vm/vm_reserv.c
@@ -628,11 +628,13 @@ vm_reserv_free_page(vm_page_t m)
mtx_assert(&vm_page_queue_free_mtx, MA_OWNED);
rv = vm_reserv_from_page(m);
- if (rv->object != NULL) {
- vm_reserv_depopulate(rv);
- return (TRUE);
- }
- return (FALSE);
+ if (rv->object == NULL)
+ return (FALSE);
+ if ((m->flags & PG_CACHED) != 0 && m->pool != VM_FREEPOOL_CACHE)
+ vm_phys_set_pool(VM_FREEPOOL_CACHE, rv->pages,
+ VM_LEVEL_0_ORDER);
+ vm_reserv_depopulate(rv);
+ return (TRUE);
}
/*
OpenPOWER on IntegriCloud