mm/mmap: Fix error path in do_vmi_align_munmap()
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Sun, 18 Jun 2023 00:47:08 +0000 (20:47 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 18 Jun 2023 16:32:17 +0000 (09:32 -0700)
commit606c812eb1d5b5fb0dd9e330ca94b52d7c227830
tree2458e45ab6a53c3d9b1424c9227fbf38898a6a23
parent1b29d271614abd97cc39782daa9d6dd70e98609f
mm/mmap: Fix error path in do_vmi_align_munmap()

The error unrolling was leaving the VMAs detached in many cases and
leaving the locked_vm statistic altered, and skipping the unrolling
entirely in the case of the vma tree write failing.

Fix the error path by re-attaching the detached VMAs and adding the
necessary goto for the failed vma tree write, and fix the locked_vm
statistic by only updating after the vma tree write succeeds.

Fixes: 763ecb035029 ("mm: remove the vma linked list")
Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mmap.c