After the sleep caused by encountering a busy page, relookup the page.

Submitted and reviewed by:	alc
Reprted and tested by:	pho
MFC after:	5 days
This commit is contained in:
Konstantin Belousov 2010-11-24 12:25:17 +00:00
parent 57542d0481
commit 780636b72a

View File

@ -821,9 +821,11 @@ vm_object_page_clean(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
np = TAILQ_NEXT(p, listq);
if (p->valid == 0)
continue;
while (vm_page_sleep_if_busy(p, TRUE, "vpcwai")) {
if (vm_page_sleep_if_busy(p, TRUE, "vpcwai")) {
if (object->generation != curgeneration)
goto rescan;
np = vm_page_find_least(object, pi);
continue;
}
vm_page_test_dirty(p);
if (p->dirty == 0)