kernel - Fix deep recursion in vm_object_collapse()
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 27 Oct 2011 01:56:39 +0000 (18:56 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 27 Oct 2011 01:56:39 +0000 (18:56 -0700)
commite806bedd2cb34ee45da81741e5a42c9263fca225
tree94289dbd992b96d9adb7e03c8528b11739f3d185
parent1c60bab9b3f5ce8531f1c2117542d42c2262569d
kernel - Fix deep recursion in vm_object_collapse()

* vm_object_collapse() will loop but its backing_object sometimes needs
  to be deallocated as well and this can trigger another collapse against
  a different parent object.

* Introduce vm_object_dealloc_list and friends to collect a list of objects
  requiring deallocation so the caller can run the list in a way that avoids
  a deep recursion.

Reported-by: juanfra
sys/vm/vm_map.c
sys/vm/vm_object.c
sys/vm/vm_object.h