aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memcontrol.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r--mm/memcontrol.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index faad98e6d17d..4f71219cc53e 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1149,17 +1149,23 @@ struct lruvec *mem_cgroup_lru_move_lists(struct zone *zone,
1149 * Checks whether given mem is same or in the root_mem_cgroup's 1149 * Checks whether given mem is same or in the root_mem_cgroup's
1150 * hierarchy subtree 1150 * hierarchy subtree
1151 */ 1151 */
1152static bool mem_cgroup_same_or_subtree(const struct mem_cgroup *root_memcg, 1152bool __mem_cgroup_same_or_subtree(const struct mem_cgroup *root_memcg,
1153 struct mem_cgroup *memcg) 1153 struct mem_cgroup *memcg)
1154{ 1154{
1155 bool ret;
1156
1157 if (root_memcg == memcg) 1155 if (root_memcg == memcg)
1158 return true; 1156 return true;
1159 if (!root_memcg->use_hierarchy) 1157 if (!root_memcg->use_hierarchy)
1160 return false; 1158 return false;
1159 return css_is_ancestor(&memcg->css, &root_memcg->css);
1160}
1161
1162static bool mem_cgroup_same_or_subtree(const struct mem_cgroup *root_memcg,
1163 struct mem_cgroup *memcg)
1164{
1165 bool ret;
1166
1161 rcu_read_lock(); 1167 rcu_read_lock();
1162 ret = css_is_ancestor(&memcg->css, &root_memcg->css); 1168 ret = __mem_cgroup_same_or_subtree(root_memcg, memcg);
1163 rcu_read_unlock(); 1169 rcu_read_unlock();
1164 return ret; 1170 return ret;
1165} 1171}