]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mempolicy: Switch to mt_for_each as most iterations need to mas_pause
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Wed, 7 Jul 2021 15:57:43 +0000 (11:57 -0400)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Wed, 7 Jul 2021 15:57:43 +0000 (11:57 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
mm/mempolicy.c

index b7b9c224334e0c4a4fd024957f2f3277b667b511..92a27c1fbcc77c9426b70658561770332052c224 100644 (file)
@@ -790,17 +790,17 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
        pgoff_t pgoff;
        unsigned long vmstart;
        unsigned long vmend;
-       MA_STATE(mas, &mm->mm_mt, start, start);
+       unsigned long index = start;
 
        rcu_read_lock();
-       vma = mas_find(&mas, ULONG_MAX);
+       vma = find_vma_intersection(mm, start, end);
        VM_BUG_ON(!vma);
 
-       prev = mas_prev(&mas, 0);
+       prev = vma_prev(mm, vma);
        if (start > vma->vm_start)
                prev = vma;
 
-       mas_for_each(&mas, vma, end - 1) {
+       mt_for_each(&mm->mm_mt, vma, index, end - 1) {
                vmstart = max(start, vma->vm_start);
                vmend   = min(end, vma->vm_end);
 
@@ -814,7 +814,6 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
                                 new_pol, vma->vm_userfaultfd_ctx);
                if (prev) {
                        vma = prev;
-                       mas_set(&mas, vma->vm_end);
                        if (mpol_equal(vma_policy(vma), new_pol))
                                continue;
                        /* vma_merge() joined vma && vma->next, case 8 */