diff --git a/mm/madvise.c b/mm/madvise.c index 6b1e2802cf02..a3f72d551b5f 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -666,8 +666,8 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr, * deactivate all pages. */ if (folio_test_large(folio)) { - if (folio_mapcount(folio) != 1) - goto out; + if (folio_estimated_sharers(folio) != 1) + break; folio_get(folio); if (!folio_trylock(folio)) { folio_put(folio);