On Thu, Aug 03, 2023 at 03:13:21PM +0800, Kefeng Wang wrote: > > > On 2023/8/2 20:21, Matthew Wilcox wrote: > > On Wed, Aug 02, 2023 at 05:53:43PM +0800, Kefeng Wang wrote: > > > err = -EACCES; > > > - if (page_mapcount(page) > 1 && !migrate_all) > > > - goto out_putpage; > > > + if (folio_estimated_sharers(folio) > 1 && !migrate_all) > > > + goto out_putfolio; > > > > I do not think this is the correct change. Maybe leave this line > > alone. > > Ok, I am aware of the discussion about this in other mail, will not > change it(also the next two patch about this function), or wait the > new work of David. > > > > > - if (PageHuge(page)) { > > > - if (PageHead(page)) { > > > - isolated = isolate_hugetlb(page_folio(page), pagelist); > > > + if (folio_test_hugetlb(folio)) { > > > + if (folio_test_large(folio)) { > > > > This makes no sense when you read it. All hugetlb folios are large, > > by definition. Think about what this code used to do, and what it > > should be changed to. > > hugetlb folio is self large folio, will drop redundant check No, that's not the difference. Keep thinking about it. This is not a mechanical translation!