aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2002-07-28 05:46:47 +0000
committerAlan Cox <alc@FreeBSD.org>2002-07-28 05:46:47 +0000
commit299018d3b6425aba087450227bb5bdad1d6ecfbe (patch)
tree6046b48368a1c955ed38d495780f478e5a219e94
parent57123de6413b73cd36da0c194ab35d1d33166db9 (diff)
Notes
-rw-r--r--sys/vm/vm_pageout.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index b9938c78b4f36..08319b86f4563 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -619,6 +619,7 @@ vm_pageout_page_free(vm_page_t m) {
vm_page_busy(m);
vm_page_protect(m, VM_PROT_NONE);
vm_page_free(m);
+ cnt.v_dfree++;
if (type == OBJT_SWAP || type == OBJT_DEFAULT)
vm_object_deallocate(object);
}
@@ -783,8 +784,9 @@ rescan0:
* Invalid pages can be easily freed
*/
if (m->valid == 0) {
+ vm_page_lock_queues();
vm_pageout_page_free(m);
- cnt.v_dfree++;
+ vm_page_unlock_queues();
--page_shortage;
/*
@@ -1075,7 +1077,6 @@ rescan0:
}
cache_rover = (cache_rover + PQ_PRIME2) & PQ_L2_MASK;
vm_pageout_page_free(m);
- cnt.v_dfree++;
}
splx(s);
vm_page_unlock_queues();