diff options
author | Maksym Planeta <mcsim.planeta@gmail.com> | 2012-11-07 18:16:43 +0100 |
---|---|---|
committer | Maksym Planeta <mcsim.planeta@gmail.com> | 2012-11-07 18:16:43 +0100 |
commit | 29315c7849056f32d93df57fd931da8e45a2e740 (patch) | |
tree | 29510a8c9476937cce358c35c65909012f26d112 /vm | |
parent | e1a950b2649f056330cacf5016c91a4f8653f49c (diff) |
Fix bug in cleanup after error.mplaneta/gsoc12/review
* vm/vm_fault.c (vm_cleanup_after_error): Alter only page structure.
(vm_fault_page): Cleanup object after error.
Diffstat (limited to 'vm')
-rw-r--r-- | vm/vm_fault.c | 3 |
1 files changed, 2 insertions, 1 deletions
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); |