diff --git a/mm/memcontrol.c b/mm/memcontrol.c index df93a5a176996aedd849927deefc0abd1fbf63ca..a22f23a21adca3f4e2edbea86a3c42d8dd80fbf6 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -751,10 +751,13 @@ static unsigned long mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg, unsigned int lru_mask) { unsigned long nr = 0; - int nid; + enum lru_list lru; - for_each_node_state(nid, N_MEMORY) - nr += mem_cgroup_node_nr_lru_pages(memcg, nid, lru_mask); + for_each_lru(lru) { + if (!(BIT(lru) & lru_mask)) + continue; + nr += memcg_page_state(memcg, NR_LRU_BASE + lru); + } return nr; }