diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/memcontrol.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index f94efd2f6c27..18ea0b7baf32 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -79,6 +79,8 @@ extern void mem_cgroup_uncharge_cache_page(struct page *page); | |||
| 79 | 79 | ||
| 80 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, | 80 | extern void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, |
| 81 | int order); | 81 | int order); |
| 82 | bool __mem_cgroup_same_or_subtree(const struct mem_cgroup *root_memcg, | ||
| 83 | struct mem_cgroup *memcg); | ||
| 82 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *memcg); | 84 | int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *memcg); |
| 83 | 85 | ||
| 84 | extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page); | 86 | extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page); |
| @@ -92,10 +94,13 @@ static inline | |||
| 92 | int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) | 94 | int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) |
| 93 | { | 95 | { |
| 94 | struct mem_cgroup *memcg; | 96 | struct mem_cgroup *memcg; |
| 97 | int match; | ||
| 98 | |||
| 95 | rcu_read_lock(); | 99 | rcu_read_lock(); |
| 96 | memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); | 100 | memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner)); |
| 101 | match = __mem_cgroup_same_or_subtree(cgroup, memcg); | ||
| 97 | rcu_read_unlock(); | 102 | rcu_read_unlock(); |
| 98 | return cgroup == memcg; | 103 | return match; |
| 99 | } | 104 | } |
| 100 | 105 | ||
| 101 | extern struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *memcg); | 106 | extern struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *memcg); |
