On Mon, Jun 29, 2026 at 01:23:39PM +0100, Lorenzo Stoakes wrote:
> Rather than combining a bunch of conditionals in a single expression,
> simplify by inverting the mergeability requirements into guard clauses.
> 
> that is - instead of checking what must be true for the conditions to be
> met, instead check the inverse of the requirements and return false if any
> are true, defaulting to true.
> 
> No functional change intended.
> 
> Signed-off-by: Lorenzo Stoakes <[email protected]>
> ---
>  mm/vma.c | 27 ++++++++++++++-------------
>  1 file changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/mm/vma.c b/mm/vma.c
> index 5c3062e0e706..7201199fc668 100644
> --- a/mm/vma.c
> +++ b/mm/vma.c
> @@ -215,13 +215,13 @@ static void init_multi_vma_prep(struct vma_prepare *vp,
>   */
>  static bool can_vma_merge_before(struct vma_merge_struct *vmg)
>  {
> -     if (is_mergeable_vma(vmg, /* merge_next = */ true) &&
> -         is_mergeable_anon_vma(vmg, /* merge_next = */ true)) {
> -             if (vmg_end_pgoff(vmg) == vma_start_pgoff(vmg->next))
> -                     return true;
> -     }
> -
> -     return false;
> +     if (!is_mergeable_vma(vmg, /* merge_next = */ true))
> +             return false;
> +     if (!is_mergeable_anon_vma(vmg, /* merge_next = */ true))
> +             return false;
> +     if (vmg_end_pgoff(vmg) != vma_start_pgoff(vmg->next))
> +             return false;
> +     return true;
>  }
>  
>  /*
> @@ -235,12 +235,13 @@ static bool can_vma_merge_before(struct 
> vma_merge_struct *vmg)
>   */
>  static bool can_vma_merge_after(struct vma_merge_struct *vmg)
>  {
> -     if (is_mergeable_vma(vmg, /* merge_next = */ false) &&
> -         is_mergeable_anon_vma(vmg, /* merge_next = */ false)) {
> -             if (vma_end_pgoff(vmg->prev) == vmg_start_pgoff(vmg))
> -                     return true;
> -     }
> -     return false;
> +     if (!is_mergeable_vma(vmg, /* merge_next = */ false))
> +             return false;
> +     if (!is_mergeable_anon_vma(vmg, /* merge_next = */ false))
> +             return false;
> +     if (vma_end_pgoff(vmg->prev) != vmg_start_pgoff(vmg))
> +             return false;
> +     return true;
>  }
>  
>  static void __vma_link_file(struct vm_area_struct *vma,

Looks nicer, thanks.

Reviewed-by: Pedro Falcato <[email protected]>

-- 
Pedro

Reply via email to