diff options
author | alc <alc@FreeBSD.org> | 2006-01-25 06:45:57 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2006-01-25 06:45:57 +0000 |
commit | d1c7af5900900497c402aa73f383cf3da406ade2 (patch) | |
tree | 07c0f4392ac6617828dc24b1139cde1b7047289a | |
parent | f7b6cf045ea1919f3507ebec16a4b9851d7cddbc (diff) | |
download | FreeBSD-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
-rw-r--r-- | sys/vm/vm_contig.c | 6 |
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], |