diff options
author | attilio <attilio@FreeBSD.org> | 2012-04-11 14:54:06 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2012-04-11 14:54:06 +0000 |
commit | af795c2c10fe9ee686f0e02d3c56c3350602d5d0 (patch) | |
tree | e2a5d6a39824dcdd6518359370327e8d1d4d6823 /sys/vm/vm_reserv.c | |
parent | 9d7ad0cef04b320f6fa9337561e751bbb3380b35 (diff) | |
parent | 5aa865afa50a2b97e5a4ad1f19def0b2e61ebccf (diff) | |
download | FreeBSD-src-af795c2c10fe9ee686f0e02d3c56c3350602d5d0.zip FreeBSD-src-af795c2c10fe9ee686f0e02d3c56c3350602d5d0.tar.gz |
MFC
Diffstat (limited to 'sys/vm/vm_reserv.c')
-rw-r--r-- | sys/vm/vm_reserv.c | 12 |
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); } /* |