]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm/swap: fix wrong plist empty check in swap_alloc_slow()
authorYoungjun Park <youngjun.park@lge.com>
Wed, 19 Nov 2025 11:41:36 +0000 (20:41 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 24 Nov 2025 23:08:56 +0000 (15:08 -0800)
swap_alloc_slow() was checking `si->avail_list` instead of
`next->avail_list` when verifying if the next swap device is still in the
list, which could cause unnecessary restarts during allocation.

Link: https://lkml.kernel.org/r/20251119114136.594108-1-youngjun.park@lge.com
Fixes: 8e689f8ea45f ("mm/swap: do not choose swap device according to numa node")
Signed-off-by: Youngjun Park <youngjun.park@lge.com>
Acked-by: Kairui Song <kasong@tencent.com>
Reviewed-by: Baoquan He <bhe@redhat.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Chris Li <chrisl@kernel.org>
Cc: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Nhat Pham <nphamcs@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/swapfile.c

index 94e0f0c54168759d75bc2756e7c09f35413e6c78..cf780fefaf7d7974764116d59ee935223254df33 100644 (file)
@@ -1374,7 +1374,7 @@ start_over:
                 * still in the swap_avail_head list then try it, otherwise
                 * start over if we have not gotten any slots.
                 */
-               if (plist_node_empty(&si->avail_list))
+               if (plist_node_empty(&next->avail_list))
                        goto start_over;
        }
        spin_unlock(&swap_avail_lock);