Address a race condition that was introduced in r238212. Unless the page
queues lock is acquired before the page lock is released, there is no guarantee that the page will still be in that same page queue when vm_page_requeue() is called. Reported by: pho In collaboration with: kib MFC after: 3 days
This commit is contained in:
parent
586a4f9ede
commit
a0349df30f
@ -1125,9 +1125,9 @@ vm_pageout_scan(int pass)
|
||||
* Those objects are in a "rundown" state.
|
||||
*/
|
||||
if (!swap_pageouts_ok || (object->flags & OBJ_DEAD)) {
|
||||
vm_page_lock_queues();
|
||||
vm_page_unlock(m);
|
||||
VM_OBJECT_UNLOCK(object);
|
||||
vm_page_lock_queues();
|
||||
queues_locked = TRUE;
|
||||
vm_page_requeue(m);
|
||||
goto relock_queues;
|
||||
|
Loading…
x
Reference in New Issue
Block a user