diff options
author | kmacy <kmacy@FreeBSD.org> | 2010-04-30 21:21:21 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2010-04-30 21:21:21 +0000 |
commit | 16fdb0146a9c17f1b387b08ba0fcf4c37ef35ba1 (patch) | |
tree | 0da3db104874bf1314ece7516b4841ce4298a9e5 /sys/vm | |
parent | bbf4b0c0bf425448cec9b0e1e4f1898f7f07fd38 (diff) | |
download | FreeBSD-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.c | 2 |
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(); |