/* * This is not the clever way to do this, but we're taking the * easy way out on the assumption that most remappings will be * only a few pages.. This also makes error recovery easier. */ for (offset = 0; offset < len; offset += PAGE_SIZE) { if (move_one_page(vma, old_addr + offset, new_vma, new_addr + offset) < 0) 
for (; old_addr < old_end; old_addr += extent, new_addr += extent) { cond_resched(); next = (old_addr + PMD_SIZE) & PMD_MASK; if (next - 1 > old_end) next = old_end; extent = next - old_addr; old_pmd = get_old_pmd(vma->vm_mm, old_addr); if (!old_pmd) continue; new_pmd = alloc_new_pmd(vma->vm_mm, new_addr); if (!new_pmd) 
static unsigned long move_page_tables(struct vm_area_struct *vma,		unsigned long old_addr, struct vm_area_struct *new_vma,		unsigned long new_addr, unsigned long len){	unsigned long offset;	flush_cache_range(vma, old_addr, old_addr + len);	/*	 * This is not the clever way to do this, but we're taking the	 * easy way out on the assumption that most remappings will be	 * only a few pages.. This also makes error recovery easier.	 */	for (offset = 0; offset < len; offset += PAGE_SIZE) {		if (move_one_page(vma, old_addr + offset,				new_vma, new_addr + offset) < 0)			break;		cond_resched();	}	return offset;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7be7a546994f1222b2312fd348da14e16b6b7b42/mremap.c/clean/mm/mremap.c