• Lorenzo Stoakes's avatar
    mm: refactor vma_merge() into modify-only vma_merge_existing_range() · cc8cb369
    Lorenzo Stoakes authored
    The existing vma_merge() function is no longer required to handle what
    were previously referred to as cases 1-3 (i.e.  the merging of a new VMA),
    as this is now handled by vma_merge_new_vma().
    
    Additionally, simplify the convoluted control flow of the original,
    maintaining identical logic only expressed more clearly and doing away
    with a complicated set of cases, rather logically examining each possible
    outcome - merging of both the previous and subsequent VMA, merging of the
    previous VMA and merging of the subsequent VMA alone.
    
    We now utilise the previously implemented commit_merge() function to share
    logic with vma_expand() de-duplicating code and providing less surface
    area for bugs and confusion.  In order to do so, we adjust this function
    to accept parameters specific to merging existing ranges.
    
    Link: https://lkml.kernel.org/r/2cf6016b7bfcc4965fc3cde10827560c42e4f12c.1725040657.git.lorenzo.stoakes@oracle.comSigned-off-by: default avatarLorenzo Stoakes <lorenzo.stoakes@oracle.com>
    Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Bert Karwatzki <spasswolf@web.de>
    Cc: Jeff Xu <jeffxu@chromium.org>
    Cc: Jiri Olsa <olsajiri@gmail.com>
    Cc: Kees Cook <kees@kernel.org>
    Cc: Lorenzo Stoakes <lstoakes@gmail.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: "Paul E. McKenney" <paulmck@kernel.org>
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    cc8cb369
vma.c 37.3 KB