From: Liam R. Howlett Date: Wed, 16 Nov 2022 17:29:34 +0000 (-0500) Subject: vma_merge: Set vma iterator to correct position. X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=1f9e8d47327728d4d206cae9832ef8843627f4f5;p=users%2Fjedix%2Flinux-maple.git vma_merge: Set vma iterator to correct position. When merging the previous value, set the vma iterator to the previous slot. Don't use the vma iterator to get the next/prev so that it is in the correct position for a write. Signed-off-by: Liam R. Howlett --- diff --git a/mm/mmap.c b/mm/mmap.c index cf4620d2040b..bfb23049a07b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -992,6 +992,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *mm, && can_vma_merge_after(prev, vm_flags, anon_vma, file, pgoff, vm_userfaultfd_ctx, anon_name)) { merge_prev = true; + vma_prev(vmi); } } /* Can we merge the successor? */ @@ -1083,9 +1084,6 @@ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *mm, validate_mm(mm); khugepaged_enter_vma(res, vm_flags); - if (res) - vma_iter_set(vmi, end); - return res; }