Hey David, FWIW, just a nit below. diff --git a/mm/rmap.c b/mm/rmap.c index 2608c40dffad..08bb6834cf72 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1143,7 +1143,6 @@ static __always_inline unsigned int __folio_add_rmap(struct folio *folio, int *nr_pmdmapped) { atomic_t *mapped = &folio->_nr_pages_mapped; - const int orig_nr_pages = nr_pages; int first, nr = 0; __folio_rmap_sanity_checks(folio, page, nr_pages, level); @@ -1155,6 +1154,7 @@ static __always_inline unsigned int __folio_add_rmap(struct folio *folio, break; } + atomic_add(nr_pages, &folio->_large_mapcount); do { first = atomic_inc_and_test(&page->_mapcount); if (first) { @@ -1163,7 +1163,6 @@ static __always_inline unsigned int __folio_add_rmap(struct folio *folio, nr++; } } while (page++, --nr_pages > 0); - atomic_add(orig_nr_pages, &folio->_large_mapcount); break; case RMAP_LEVEL_PMD: first = atomic_inc_and_test(&folio->_entire_mapcount); Thanks, Lance