diff --git a/mm/vmscan.c b/mm/vmscan.c index 9f3cc52fc3da..8ada49c73a45 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4281,7 +4281,7 @@ static bool sort_folio(struct lruvec *lruvec, struct folio *folio, struct scan_c } /* ineligible */ - if (zone > sc->reclaim_idx) { + if (!folio_test_lru(folio) || zone > sc->reclaim_idx) { gen = folio_inc_gen(lruvec, folio, false); list_move_tail(&folio->lru, &lrugen->folios[gen][type][zone]); return true;