Commit 43ec8a62 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'unmap-fix-20230629' of git://git.infradead.org/users/dwmw2/linux

Pull mm fix from David Woodhouse:
 "Fix error return from do_vmi_align_munmap()"

* tag 'unmap-fix-20230629' of git://git.infradead.org/users/dwmw2/linux:
  mm/mmap: Fix error return in do_vmi_align_munmap()
parents 3ad7b12c 6c26bd43
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -2489,7 +2489,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)
@@ -2542,12 +2543,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;
	/*