diff --git a/mm/swapfile.c b/mm/swapfile.c index 8810a6d7d67f..67aaf7ae22ff 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2208,7 +2208,8 @@ int try_to_unuse(unsigned int type, bool frontswap, */ if (PageSwapCache(page) && likely(page_private(page) == entry.val) && - !page_swapped(page)) + (!PageTransCompound(page) || + !swap_page_trans_huge_swapped(si, entry))) delete_from_swap_cache(compound_head(page)); /*