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. Fixes: 8e689f8ea45ff ("mm/swap: do not choose swap device according to numa node") Signed-off-by: Youngjun Park --- mm/swapfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index 94e0f0c54168..cf780fefaf7d 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1374,7 +1374,7 @@ static bool swap_alloc_slow(swp_entry_t *entry, * 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); -- 2.34.1