diff options
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r-- | sys/vm/vm_fault.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index ceee8f5..ddc1119 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1287,11 +1287,13 @@ vm_fault_copy_entry(vm_map_t dst_map, vm_map_t src_map, access &= ~VM_PROT_WRITE; /* - * Loop through all of the pages in the entry's range, copying - * each one from the source object (it should be there) to the - * destination object. Note that copied pages are not wired - * and marked dirty to prevent reclamation without saving the - * content into the swap file on pageout. + * Loop through all of the virtual pages within the entry's + * range, copying each page from the source object to the + * destination object. Since the source is wired, those pages + * must exist. In contrast, the destination is pageable. + * Since the destination object does share any backing storage + * with the source object, all of its pages must be dirtied, + * regardless of whether they can be written. */ for (vaddr = dst_entry->start, dst_pindex = 0; vaddr < dst_entry->end; |