diff options
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r-- | sys/vm/vm_pageout.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 4ab3930..3b0c7cc 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -1129,6 +1129,7 @@ rescan0: if ((vm_swap_size < 64 || swap_pager_full) && vm_page_count_min()) { bigproc = NULL; bigsize = 0; + lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC); for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) { /* * if this is a system process, skip it @@ -1158,6 +1159,7 @@ rescan0: bigsize = size; } } + lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC); if (bigproc != NULL) { killproc(bigproc, "out of swap space"); bigproc->p_estcpu = 0; @@ -1442,6 +1444,7 @@ vm_daemon() * process is swapped out -- deactivate pages */ + lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC); for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) { vm_pindex_t limit, size; @@ -1480,6 +1483,7 @@ vm_daemon() &p->p_vmspace->vm_map, limit); } } + lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC); } } #endif |