mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
mm/mmap: move anon_vma setting in __vma_adjust()
Move the anon_vma setting & warn_no up the function. This is done to clear up the locking later. Link: https://lkml.kernel.org/r/20230120162650.984577-40-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
6b73cff239
commit
e3d73f848e
13
mm/mmap.c
13
mm/mmap.c
@ -682,6 +682,14 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma,
|
||||
if (vma_iter_prealloc(vmi))
|
||||
return -ENOMEM;
|
||||
|
||||
anon_vma = vma->anon_vma;
|
||||
if (!anon_vma && adjust_next)
|
||||
anon_vma = next->anon_vma;
|
||||
|
||||
if (anon_vma)
|
||||
VM_WARN_ON(adjust_next && next->anon_vma &&
|
||||
anon_vma != next->anon_vma);
|
||||
|
||||
vma_adjust_trans_huge(orig_vma, start, end, adjust_next);
|
||||
if (file) {
|
||||
mapping = file->f_mapping;
|
||||
@ -703,12 +711,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma,
|
||||
}
|
||||
}
|
||||
|
||||
anon_vma = vma->anon_vma;
|
||||
if (!anon_vma && adjust_next)
|
||||
anon_vma = next->anon_vma;
|
||||
if (anon_vma) {
|
||||
VM_WARN_ON(adjust_next && next->anon_vma &&
|
||||
anon_vma != next->anon_vma);
|
||||
anon_vma_lock_write(anon_vma);
|
||||
anon_vma_interval_tree_pre_update_vma(vma);
|
||||
if (adjust_next)
|
||||
|
Loading…
Reference in New Issue
Block a user