 /* * Don't copy ptes where a page fault will fill them correctly. * Fork becomes much lighter when there are big shared or private * readonly mappings. The tradeoff is that copy_page_range is more * efficient than faulting. */ if (!(vma->vm_flags & (VM_HUGETLB|VM_NONLINEAR|VM_RESERVED))) { if (!vma->anon_vma) return 0; } 
int copy_page_range(struct mm_struct *dst_mm, struct mm_struct *src_mm,		struct vm_area_struct *vma){	pgd_t *src_pgd, *dst_pgd;	unsigned long next;	unsigned long addr = vma->vm_start;	unsigned long end = vma->vm_end;	if (is_vm_hugetlb_page(vma))		return copy_hugetlb_page_range(dst_mm, src_mm, vma);	dst_pgd = pgd_offset(dst_mm, addr);	src_pgd = pgd_offset(src_mm, addr);	do {		next = pgd_addr_end(addr, end);		if (pgd_none_or_clear_bad(src_pgd))			continue;		if (copy_pud_range(dst_mm, src_mm, dst_pgd, src_pgd,						vma, addr, next))			return -ENOMEM;	} while (dst_pgd++, src_pgd++, addr = next, addr != end);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d992895ba2b27cf5adf1ba0ad6d27662adc54c5e/memory.c/buggy/mm/memory.c