mm: remove folio from deferred split list before uncharging it
[sfrench/cifs-2.6.git] / mm / swap.c
index 6b697d33fa5b1ecf5e59aca1569ac6fd0692c2ab..e43a5911b170ce1bd141122d340fec26c5a50113 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -1012,6 +1012,9 @@ void folios_put_refs(struct folio_batch *folios, unsigned int *refs)
                        free_huge_folio(folio);
                        continue;
                }
+               if (folio_test_large(folio) &&
+                   folio_test_large_rmappable(folio))
+                       folio_undo_large_rmappable(folio);
 
                __page_cache_release(folio, &lruvec, &flags);