--- x/mm/rmap.c +++ y/mm/rmap.c @@ -2366,6 +2366,7 @@ static bool try_to_migrate_one(struct fo subpage = folio_page(folio, pfn - folio_pfn(folio)); address = pvmw.address; anon_exclusive = folio_test_anon(folio) && + pfn == folio_pfn(folio) && PageAnonExclusive(subpage); if (folio_test_hugetlb(folio)) {