The quilt patch titled Subject: mm/swap: take folio refcount after testing the LRU flag has been removed from the -mm tree. Its filename was mm-swap-take-folio-refcount-after-testing-the-lru-flag.patch This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm ------------------------------------------------------ From: yangge <yangge1116@xxxxxxx> Subject: mm/swap: take folio refcount after testing the LRU flag Date: Tue, 13 Aug 2024 17:52:23 +0800 Whoever passes a folio to __folio_batch_add_and_move() must hold a reference, otherwise something else would already be messed up. If the folio is referenced, it will not be freed elsewhere, so we can safely clear the folio's lru flag. As discussed with David in [1], we should take the reference after testing the LRU flag, not before. Link: https://lore.kernel.org/lkml/d41865b4-d6fa-49ba-890a-921eefad27dd@xxxxxxxxxx/ [1] Link: https://lkml.kernel.org/r/1723542743-32179-1-git-send-email-yangge1116@xxxxxxx Signed-off-by: yangge <yangge1116@xxxxxxx> Acked-by: David Hildenbrand <david@xxxxxxxxxx> Cc: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> Cc: Yu Zhao <yuzhao@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/swap.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) --- a/mm/swap.c~mm-swap-take-folio-refcount-after-testing-the-lru-flag +++ a/mm/swap.c @@ -226,12 +226,10 @@ static void __folio_batch_add_and_move(s { unsigned long flags; - folio_get(folio); - - if (on_lru && !folio_test_clear_lru(folio)) { - folio_put(folio); + if (on_lru && !folio_test_clear_lru(folio)) return; - } + + folio_get(folio); if (disable_irq) local_lock_irqsave(&cpu_fbatches.lock_irq, flags); _ Patches currently in -mm which might be from yangge1116@xxxxxxx are