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
This commit is contained in:
alc 2006-01-25 06:45:57 +00:00
parent f7b6cf045e
commit d1c7af5900

View File

@ -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],