mm/mmap: Fix error return in do_vmi_align_munmap()
[platform/kernel/linux-rpi.git] / mm / mmap.c
index d600404..13128e9 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2387,7 +2387,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma,
                }
                vma_start_write(next);
                mas_set_range(&mas_detach, next->vm_start, next->vm_end - 1);
-               if (mas_store_gfp(&mas_detach, next, GFP_KERNEL))
+               error = mas_store_gfp(&mas_detach, next, GFP_KERNEL);
+               if (error)
                        goto munmap_gather_failed;
                vma_mark_detached(next, true);
                if (next->vm_flags & VM_LOCKED)
@@ -2436,12 +2437,12 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma,
                BUG_ON(count != test_count);
        }
 #endif
-       /* Point of no return */
-       error = -ENOMEM;
        vma_iter_set(vmi, start);
-       if (vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL))
+       error = vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL);
+       if (error)
                goto clear_tree_failed;
 
+       /* Point of no return */
        mm->locked_vm -= locked_vm;
        mm->map_count -= count;
        /*