From 29315c7849056f32d93df57fd931da8e45a2e740 Mon Sep 17 00:00:00 2001 From: Maksym Planeta Date: Wed, 7 Nov 2012 18:16:43 +0100 Subject: Fix bug in cleanup after error. * vm/vm_fault.c (vm_cleanup_after_error): Alter only page structure. (vm_fault_page): Cleanup object after error. --- vm/vm_fault.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vm/vm_fault.c b/vm/vm_fault.c index 286b423d..f80c26a1 100644 --- a/vm/vm_fault.c +++ b/vm/vm_fault.c @@ -308,7 +308,7 @@ static vm_fault_return_t vm_cleanup_after_error (vm_object_t obj, vm_page_t m, map_function_parameter_t parameter) { - vm_fault_cleanup(obj, m); + VM_PAGE_FREE(m); return(VM_FAULT_SUCCESS); } @@ -850,6 +850,7 @@ vm_fault_return_t vm_fault_page(first_object, first_offset, map_entry, map_function_parameter_t param = { .offset = 0}; /* Just stub */ printf("vm_fault: memory_object_data_unlock failed\n"); vm_object_lock(object); + vm_fault_cleanup(object, first_m); vm_for_every_page (object, in_start, &in_end, vm_cleanup_after_error, param); -- cgit v1.2.3