Addendum to r254141: Allow recursion on the free pages queues lock in

vm_page_alloc_freelist().

Reported and tested by:	sbruno
Sponsored by:	EMC / Isilon Storage Division
This commit is contained in:
Alan Cox 2013-08-21 15:31:43 +00:00
parent aef60d8c4a
commit 28a288cbaa

View File

@ -1927,7 +1927,7 @@ vm_page_alloc_freelist(int flind, int req)
/*
* Do not allocate reserved pages unless the req has asked for it.
*/
mtx_lock(&vm_page_queue_free_mtx);
mtx_lock_flags(&vm_page_queue_free_mtx, MTX_RECURSE);
if (cnt.v_free_count + cnt.v_cache_count > cnt.v_free_reserved ||
(req_class == VM_ALLOC_SYSTEM &&
cnt.v_free_count + cnt.v_cache_count > cnt.v_interrupt_free_min) ||