Re: [PATCH 3/4] mm, swap: return early from swap_extend_table_try_free() on first non-zero entry
From: Youngjun Park
Date: Tue Jul 21 2026 - 00:08:29 EST
On Mon, Jul 20, 2026 at 03:13:41PM +0800, Kemeng Shi wrote:
> Return immediately when the first non-zero swap count is found as
> any non-zero swap count prevents freeing extend_table and further
> iteration is pointless.
>
> Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx>
> ---
> mm/swapfile.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/mm/swapfile.c b/mm/swapfile.c
> index 81c4040912be..3fcbd10c6353 100644
> --- a/mm/swapfile.c
> +++ b/mm/swapfile.c
> @@ -1530,20 +1530,17 @@ int swap_retry_table_alloc(swp_entry_t entry, gfp_t gfp)
> static void swap_extend_table_try_free(struct swap_cluster_info *ci)
> {
> unsigned long i;
> - bool can_free = true;
>
> if (!ci->extend_table)
> return;
>
> for (i = 0; i < SWAPFILE_CLUSTER; i++) {
> if (ci->extend_table[i])
> - can_free = false;
> + return;
> }
>
> - if (can_free) {
> - kfree(ci->extend_table);
> - ci->extend_table = NULL;
> - }
> + kfree(ci->extend_table);
> + ci->extend_table = NULL;
> }
>
> /* Decrease the swap count of one slot, without freeing it */
> --
> 2.36.1
>
LGTM :)
Thanks
Reviewed-by: Youngjun Park <youngjun.park@xxxxxxx>
Youngjun