summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_page.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1997-03-23 02:44:54 +0000
committerdyson <dyson@FreeBSD.org>1997-03-23 02:44:54 +0000
commit9c1cce114fbef8364b2d49669b0215e8bac94fd3 (patch)
treee758f5e2b3e2ebeca45dcb796337e2c055026163 /sys/vm/vm_page.c
parent9243f015c687ebe7a0e41230e547565ceecff60a (diff)
downloadFreeBSD-src-9c1cce114fbef8364b2d49669b0215e8bac94fd3.zip
FreeBSD-src-9c1cce114fbef8364b2d49669b0215e8bac94fd3.tar.gz
Fix a significant error in the accounting for pre-zeroed pages. This
is a candidate for RELENG_2_2...
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r--sys/vm/vm_page.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index fe90a73..d06711b 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91
- * $Id$
+ * $Id: vm_page.c,v 1.76 1997/02/22 09:48:31 peter Exp $
*/
/*
@@ -734,7 +734,7 @@ vm_page_alloc(object, pindex, page_req)
{
register vm_page_t m;
struct vpgqueues *pq;
- int queue;
+ int queue, qtype;
int s;
#ifdef DIAGNOSTIC
@@ -835,15 +835,16 @@ vm_page_alloc(object, pindex, page_req)
}
queue = m->queue;
- if (queue == PQ_ZERO)
+ qtype = queue - m->pc;
+ if (qtype == PQ_ZERO)
--vm_page_zero_count;
pq = &vm_page_queues[queue];
TAILQ_REMOVE(pq->pl, m, pageq);
--(*pq->cnt);
--(*pq->lcnt);
- if ((m->queue - m->pc) == PQ_ZERO) {
+ if (qtype == PQ_ZERO) {
m->flags = PG_ZERO|PG_BUSY;
- } else if ((m->queue - m->pc) == PQ_CACHE) {
+ } else if (qtype == PQ_CACHE) {
vm_page_remove(m);
m->flags = PG_BUSY;
} else {
OpenPOWER on IntegriCloud