summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_pageout.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r--sys/vm/vm_pageout.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index 8e3c39f..dab4ae2 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -1214,8 +1214,13 @@ rescan0:
/*
* get the process size
*/
- size = vmspace_resident_count(p->p_vmspace) +
- vmspace_swap_count(p->p_vmspace);
+ if (!vm_map_trylock_read(&p->p_vmspace->vm_map)) {
+ PROC_UNLOCK(p);
+ continue;
+ }
+ size = vmspace_swap_count(p->p_vmspace);
+ vm_map_unlock_read(&p->p_vmspace->vm_map);
+ size += vmspace_resident_count(p->p_vmspace);
/*
* if the this process is bigger than the biggest one
* remember it.
OpenPOWER on IntegriCloud