diff options
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r-- | mm/memcontrol.c | 16 |
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 | */ |
1152 | static bool mem_cgroup_same_or_subtree(const struct mem_cgroup *root_memcg, | 1152 | bool __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 | |||
1162 | static 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 | } |