Lines Matching defs:new_vma
3404 struct vm_area_struct *new_vma, *prev;
3417 new_vma = find_vma_prev(mm, addr, &prev);
3418 if (new_vma && new_vma->vm_start < addr + len)
3421 new_vma = vma_merge_new_vma(&vmi, prev, vma, addr, addr + len, pgoff);
3422 if (new_vma) {
3424 * Source vma may have been merged into new_vma
3426 if (unlikely(vma_start >= new_vma->vm_start &&
3427 vma_start < new_vma->vm_end)) {
3440 VM_BUG_ON_VMA(faulted_in_anon_vma, new_vma);
3441 *vmap = vma = new_vma;
3443 *need_rmap_locks = (new_vma->vm_pgoff <= vma->vm_pgoff);
3445 new_vma = vm_area_dup(vma);
3446 if (!new_vma)
3448 vma_set_range(new_vma, addr, addr + len, pgoff);
3449 if (vma_dup_policy(vma, new_vma))
3451 if (anon_vma_clone(new_vma, vma))
3453 if (new_vma->vm_file)
3454 get_file(new_vma->vm_file);
3455 if (new_vma->vm_ops && new_vma->vm_ops->open)
3456 new_vma->vm_ops->open(new_vma);
3457 if (vma_link(mm, new_vma))
3461 return new_vma;
3464 if (new_vma->vm_ops && new_vma->vm_ops->close)
3465 new_vma->vm_ops->close(new_vma);
3467 if (new_vma->vm_file)
3468 fput(new_vma->vm_file);
3470 unlink_anon_vmas(new_vma);
3472 mpol_put(vma_policy(new_vma));
3474 vm_area_free(new_vma);
3534 static int special_mapping_mremap(struct vm_area_struct *new_vma)
3536 struct vm_special_mapping *sm = new_vma->vm_private_data;
3538 if (WARN_ON_ONCE(current->mm != new_vma->vm_mm))
3542 return sm->mremap(sm, new_vma);