Skip to content

Commit 287051b

Browse files
howlettakpm00
authored andcommitted
mm/mmap: convert do_brk_flags() to use vma_prepare() and vma_complete()
Use the abstracted vma locking for do_brk_flags() Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Liam R. Howlett <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent 04241ff commit 287051b

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

mm/mmap.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2936,6 +2936,7 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
29362936
unsigned long addr, unsigned long len, unsigned long flags)
29372937
{
29382938
struct mm_struct *mm = current->mm;
2939+
struct vma_prepare vp;
29392940

29402941
validate_mm_mt(mm);
29412942
/*
@@ -2963,18 +2964,13 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
29632964
goto unacct_fail;
29642965

29652966
vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0);
2966-
if (vma->anon_vma) {
2967-
anon_vma_lock_write(vma->anon_vma);
2968-
anon_vma_interval_tree_pre_update_vma(vma);
2969-
}
2967+
init_vma_prep(&vp, vma);
2968+
vma_prepare(&vp);
29702969
vma->vm_end = addr + len;
29712970
vma->vm_flags |= VM_SOFTDIRTY;
29722971
vma_iter_store(vmi, vma);
29732972

2974-
if (vma->anon_vma) {
2975-
anon_vma_interval_tree_post_update_vma(vma);
2976-
anon_vma_unlock_write(vma->anon_vma);
2977-
}
2973+
vma_complete(&vp, vmi, mm);
29782974
khugepaged_enter_vma(vma, flags);
29792975
goto out;
29802976
}

0 commit comments

Comments
 (0)