Following on from Vlastimil Babka's patch series "cleanup vma_merge() and improve mergeability tests" which was in turn based on Liam's prior cleanups, this patch series introduces changes discussed in review of Vlastimil's series and goes further in attempting to make the logic as clear as possible. Nearly all of this should have absolutely no functional impact, however it does add a singular VM_WARN_ON() case. With many thanks to Vernon for helping kick start the discussion around simplification - abstract use of vma did indeed turn out not to be necessary - and to Liam for his excellent suggestions which greatly simplified things. v2: - Put the patch series on a serious diet, cut comments down to avoid bloat. - Added clever use of find_vma_intersection() and vma_lookup() as suggested by Liam which improved clarity + brevity significantly. - Eliminated the use of a temporary vma local as suggested by Vernon, it does seem this was ultimately adding confusion and Liam's suggestions eliminated the need for this. - Moved around initial variables to be more sensible and to initialise each variable in one place where possible. v1: https://lore.kernel.org/all/cover.1679137163.git.lstoakes@xxxxxxxxx Lorenzo Stoakes (4): mm/mmap/vma_merge: further improve prev/next VMA naming mm/mmap/vma_merge: set next to NULL if not applicable mm/mmap/vma_merge: extend invariants, avoid invalid res, vma mm/mmap/vma_merge: init cleanup, be explicit about the non-mergeable case mm/mmap.c | 155 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 80 insertions(+), 75 deletions(-) -- 2.39.2