summaryrefslogtreecommitdiff
path: root/vm/vm_object.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm_object.c')
-rw-r--r--vm/vm_object.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vm/vm_object.c b/vm/vm_object.c
index c238cce4..9a46149b 100644
--- a/vm/vm_object.c
+++ b/vm/vm_object.c
@@ -1066,10 +1066,14 @@ kern_return_t vm_object_copy_slowly(
vm_page_t new_page;
vm_fault_return_t result;
+ vm_object_lock(new_object);
while ((new_page = vm_page_alloc(new_object, new_offset))
== VM_PAGE_NULL) {
+ vm_object_unlock(new_object);
VM_PAGE_WAIT((void (*)()) 0);
+ vm_object_lock(new_object);
}
+ vm_object_unlock(new_object);
do {
vm_prot_t prot = VM_PROT_READ;