Remove redundand loop. The inner goto restarts the whole page

handling in the situation identical to the loop condition.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
This commit is contained in:
Konstantin Belousov 2014-05-21 08:19:04 +00:00
parent 61c067adc3
commit 2602a2ea88
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=266491

View File

@ -1351,18 +1351,16 @@ vm_fault_copy_entry(vm_map_t dst_map, vm_map_t src_map,
/*
* Allocate a page in the destination object.
*/
do {
dst_m = vm_page_alloc(dst_object,
(src_object == dst_object ? src_pindex :
0) + dst_pindex, VM_ALLOC_NORMAL);
if (dst_m == NULL) {
VM_OBJECT_WUNLOCK(dst_object);
VM_OBJECT_RUNLOCK(object);
VM_WAIT;
VM_OBJECT_WLOCK(dst_object);
goto again;
}
} while (dst_m == NULL);
dst_m = vm_page_alloc(dst_object, (src_object ==
dst_object ? src_pindex : 0) + dst_pindex,
VM_ALLOC_NORMAL);
if (dst_m == NULL) {
VM_OBJECT_WUNLOCK(dst_object);
VM_OBJECT_RUNLOCK(object);
VM_WAIT;
VM_OBJECT_WLOCK(dst_object);
goto again;
}
pmap_copy_page(src_m, dst_m);
VM_OBJECT_RUNLOCK(object);
dst_m->valid = VM_PAGE_BITS_ALL;