Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-block.git] / mm / workingset.c
index 0bedf67502d54525fb7ac9626dbceb84572c26ca..e0b4edcb88c8c63dd307b0648ad34e3a27ce0ee8 100644 (file)
@@ -426,12 +426,14 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker,
 #ifdef CONFIG_MEMCG
        if (sc->memcg) {
                struct lruvec *lruvec;
+               int i;
 
-               pages = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid,
-                                                    LRU_ALL);
                lruvec = mem_cgroup_lruvec(NODE_DATA(sc->nid), sc->memcg);
-               pages += lruvec_page_state(lruvec, NR_SLAB_RECLAIMABLE);
-               pages += lruvec_page_state(lruvec, NR_SLAB_UNRECLAIMABLE);
+               for (pages = 0, i = 0; i < NR_LRU_LISTS; i++)
+                       pages += lruvec_page_state_local(lruvec,
+                                                        NR_LRU_BASE + i);
+               pages += lruvec_page_state_local(lruvec, NR_SLAB_RECLAIMABLE);
+               pages += lruvec_page_state_local(lruvec, NR_SLAB_UNRECLAIMABLE);
        } else
 #endif
                pages = node_present_pages(sc->nid);