Correct a long-standing race condition in vm_object_page_remove() that

could result in a dirty page being unintentionally freed.

Reviewed by:	tegge
MFC after:	7 days
This commit is contained in:
alc 2004-02-22 03:36:51 +00:00
parent 6d00d752a2
commit 28e2e6f950

View File

@ -1797,7 +1797,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
if (vm_page_sleep_if_busy(p, TRUE, "vmopar"))
goto again;
if (clean_only && p->valid) {
vm_page_test_dirty(p);
pmap_page_protect(p, VM_PROT_READ | VM_PROT_EXECUTE);
if (p->valid & p->dirty)
continue;
}