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

Reply via email to