|
@@ -2419,16 +2419,16 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
|
|
|
new_vma = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
|
|
|
if (new_vma) {
|
|
|
*new_vma = *vma;
|
|
|
+ new_vma->vm_start = addr;
|
|
|
+ new_vma->vm_end = addr + len;
|
|
|
+ new_vma->vm_pgoff = pgoff;
|
|
|
pol = mpol_dup(vma_policy(vma));
|
|
|
if (IS_ERR(pol))
|
|
|
goto out_free_vma;
|
|
|
+ vma_set_policy(new_vma, pol);
|
|
|
INIT_LIST_HEAD(&new_vma->anon_vma_chain);
|
|
|
if (anon_vma_clone(new_vma, vma))
|
|
|
goto out_free_mempol;
|
|
|
- vma_set_policy(new_vma, pol);
|
|
|
- new_vma->vm_start = addr;
|
|
|
- new_vma->vm_end = addr + len;
|
|
|
- new_vma->vm_pgoff = pgoff;
|
|
|
if (new_vma->vm_file)
|
|
|
get_file(new_vma->vm_file);
|
|
|
if (new_vma->vm_ops && new_vma->vm_ops->open)
|