Re: [PATCH v4 2/6] mm/huge_memory: remove after_split label in __split_unmapped_folio().

From: Lorenzo Stoakes
Date: Fri Jul 18 2025 - 10:58:59 EST


On Thu, Jul 17, 2025 at 10:29:56PM -0400, Zi Yan wrote:
> Checking stop_split instead to avoid the goto statement.
>
> Signed-off-by: Zi Yan <ziy@xxxxxxxxxx

Thanks, nice + clear!

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>

> ---
> mm/huge_memory.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 63eebca07628..e01359008b13 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3463,18 +3463,18 @@ static int __split_unmapped_folio(struct folio *folio, int new_order,
> if (xas_error(xas)) {
> ret = xas_error(xas);
> stop_split = true;
> - goto after_split;
> }
> }
> }
>
> - folio_split_memcg_refs(folio, old_order, split_order);
> - split_page_owner(&folio->page, old_order, split_order);
> - pgalloc_tag_split(folio, old_order, split_order);
> + if (!stop_split) {
> + folio_split_memcg_refs(folio, old_order, split_order);
> + split_page_owner(&folio->page, old_order, split_order);
> + pgalloc_tag_split(folio, old_order, split_order);
>
> - __split_folio_to_order(folio, old_order, split_order);
> + __split_folio_to_order(folio, old_order, split_order);
> + }
>
> -after_split:
> /*
> * Iterate through after-split folios and update folio stats.
> * But in buddy allocator like split, the folio
> --
> 2.47.2
>