From 6e2175fc06d310ca0f4b790554af0c40dbbdc451 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Mon, 10 May 2010 11:53:40 +0000 Subject: [PATCH] Continue cleaning the queue instead of moving to the next queue or bailing out if acquisition of page lock caused page position in the queue to change. Pointed out by: alc --- sys/vm/vm_contig.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_contig.c b/sys/vm/vm_contig.c index 1286c170d1c..4d896a349a0 100644 --- a/sys/vm/vm_contig.c +++ b/sys/vm/vm_contig.c @@ -168,10 +168,8 @@ vm_contig_launder(int queue) if ((m->flags & PG_MARKER) != 0) continue; - if (!vm_pageout_page_lock(m, &next)) { - vm_page_unlock(m); - return (FALSE); - } + if (!vm_pageout_page_lock(m, &next)) + continue; KASSERT(VM_PAGE_INQUEUE2(m, queue), ("vm_contig_launder: page %p's queue is not %d", m, queue)); error = vm_contig_launder_page(m, &next);