mm: Convert page kmemcg type to a page memcg flag
[linux-2.6-microblaze.git] / mm / memcontrol.c
index 0054b48..e0366e3 100644 (file)
@@ -3090,8 +3090,8 @@ int __memcg_kmem_charge_page(struct page *page, gfp_t gfp, int order)
        if (memcg && !mem_cgroup_is_root(memcg)) {
                ret = __memcg_kmem_charge(memcg, gfp, 1 << order);
                if (!ret) {
-                       page->memcg_data = (unsigned long)memcg;
-                       __SetPageKmemcg(page);
+                       page->memcg_data = (unsigned long)memcg |
+                               MEMCG_DATA_KMEM;
                        return 0;
                }
                css_put(&memcg->css);
@@ -3116,10 +3116,6 @@ void __memcg_kmem_uncharge_page(struct page *page, int order)
        __memcg_kmem_uncharge(memcg, nr_pages);
        page->memcg_data = 0;
        css_put(&memcg->css);
-
-       /* slab pages do not have PageKmemcg flag set */
-       if (PageKmemcg(page))
-               __ClearPageKmemcg(page);
 }
 
 static bool consume_obj_stock(struct obj_cgroup *objcg, unsigned int nr_bytes)
@@ -6877,12 +6873,10 @@ static void uncharge_page(struct page *page, struct uncharge_gather *ug)
        nr_pages = compound_nr(page);
        ug->nr_pages += nr_pages;
 
-       if (!PageKmemcg(page)) {
-               ug->pgpgout++;
-       } else {
+       if (PageMemcgKmem(page))
                ug->nr_kmem += nr_pages;
-               __ClearPageKmemcg(page);
-       }
+       else
+               ug->pgpgout++;
 
        ug->dummy_page = page;
        page->memcg_data = 0;