]> git.karo-electronics.de Git - linux-beck.git/blobdiff - mm/huge_memory.c
mm, rmap: account shmem thp pages
[linux-beck.git] / mm / huge_memory.c
index 3b74fea6b5db5906ff8488c670309a6196d73cad..6c524984931b9725d28ce3106efc38dadf01d548 100644 (file)
@@ -3067,7 +3067,7 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd,
 
        if (atomic_add_negative(-1, compound_mapcount_ptr(page))) {
                /* Last compound_mapcount is gone. */
-               __dec_zone_page_state(page, NR_ANON_TRANSPARENT_HUGEPAGES);
+               __dec_zone_page_state(page, NR_ANON_THPS);
                if (TestClearPageDoubleMap(page)) {
                        /* No need in mapcount reference anymore */
                        for (i = 0; i < HPAGE_PMD_NR; i++)
@@ -3539,6 +3539,8 @@ int split_huge_page_to_list(struct page *page, struct list_head *list)
                        pgdata->split_queue_len--;
                        list_del(page_deferred_list(head));
                }
+               if (mapping)
+                       __dec_zone_page_state(page, NR_SHMEM_THPS);
                spin_unlock(&pgdata->split_queue_lock);
                __split_huge_page(page, list, flags);
                ret = 0;