summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2013-08-21 15:31:43 +0000
committeralc <alc@FreeBSD.org>2013-08-21 15:31:43 +0000
commit42d76a02b5eebd4a6480e0683cc67fea1d3b16a0 (patch)
treea0d2556de1bfffdbea91f8141675b68690df967c /sys/vm
parent13ce4e66a1bca0366fbfd59ac247c90903fbccbd (diff)
downloadFreeBSD-src-42d76a02b5eebd4a6480e0683cc67fea1d3b16a0.zip
FreeBSD-src-42d76a02b5eebd4a6480e0683cc67fea1d3b16a0.tar.gz
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
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_page.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 44a57fe..01b7cc0 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -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) ||
OpenPOWER on IntegriCloud