summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2006-01-25 06:45:57 +0000
committeralc <alc@FreeBSD.org>2006-01-25 06:45:57 +0000
commitd1c7af5900900497c402aa73f383cf3da406ade2 (patch)
tree07c0f4392ac6617828dc24b1139cde1b7047289a /sys/vm
parentf7b6cf045ea1919f3507ebec16a4b9851d7cddbc (diff)
downloadFreeBSD-src-d1c7af5900900497c402aa73f383cf3da406ade2.zip
FreeBSD-src-d1c7af5900900497c402aa73f383cf3da406ade2.tar.gz
The previous revision incorrectly changed a switch statement into an if
statement. Specifically, a break statement that previously broke out of the enclosing switch was not changed. Consequently, the enclosing loop terminated prematurely. This could result in "vm_page_insert: page already inserted" panics. Submitted by: tegge
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_contig.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/vm/vm_contig.c b/sys/vm/vm_contig.c
index c622285..ad98cf9 100644
--- a/sys/vm/vm_contig.c
+++ b/sys/vm/vm_contig.c
@@ -461,9 +461,9 @@ retry_page:
if (vm_contig_launder_page(m) != 0)
goto cleanup_freed;
pqtype = m->queue - m->pc;
- if (pqtype == PQ_FREE ||
- pqtype == PQ_CACHE)
- break;
+ if (pqtype != PQ_FREE &&
+ pqtype != PQ_CACHE)
+ goto cleanup_freed;
} else {
cleanup_freed:
vm_page_release_contigl(&pga[i + 1],
OpenPOWER on IntegriCloud