summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2010-04-30 21:21:21 +0000
committerkmacy <kmacy@FreeBSD.org>2010-04-30 21:21:21 +0000
commit16fdb0146a9c17f1b387b08ba0fcf4c37ef35ba1 (patch)
tree0da3db104874bf1314ece7516b4841ce4298a9e5 /sys/vm
parentbbf4b0c0bf425448cec9b0e1e4f1898f7f07fd38 (diff)
downloadFreeBSD-src-16fdb0146a9c17f1b387b08ba0fcf4c37ef35ba1.zip
FreeBSD-src-16fdb0146a9c17f1b387b08ba0fcf4c37ef35ba1.tar.gz
don't call vm_pageout_flush with the page queue mutex held
Reported by: Michael Butler
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_object.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 47ef973..7e1cc22 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1058,7 +1058,9 @@ vm_object_page_collect_flush(vm_object_t object, vm_page_t p, int curgeneration,
}
runlen = maxb + maxf + 1;
+ vm_page_unlock_queues();
vm_pageout_flush(ma, runlen, pagerflags);
+ vm_page_lock_queues();
for (i = 0; i < runlen; i++) {
if (ma[i]->dirty) {
vm_page_unlock_queues();
OpenPOWER on IntegriCloud