diff options
author | Dave Airlie <airlied@redhat.com> | 2016-06-09 04:01:49 +0300 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-06-09 04:01:49 +0300 |
commit | fa625c1956830c826ebf13324c2b33fcabef7db0 (patch) | |
tree | 92c7f1272617c5c6a82478ba161af97eae0260cd /mm/memcontrol.c | |
parent | 66fd7a66e8b9e11e49f46ea77910f935c4dee5c3 (diff) | |
parent | af8c34ce6ae32addda3788d54a7e340cad22516b (diff) | |
download | linux-fa625c1956830c826ebf13324c2b33fcabef7db0.tar.xz |
Backmerge tag 'v4.7-rc2' into drm-next
Daniel has a pull request that relies on stuff in fixes that are in rc2.
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r-- | mm/memcontrol.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 925b431f3f03..58c69c94402a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2896,6 +2896,7 @@ static void memcg_offline_kmem(struct mem_cgroup *memcg) * ordering is imposed by list_lru_node->lock taken by * memcg_drain_all_list_lrus(). */ + rcu_read_lock(); /* can be called from css_free w/o cgroup_mutex */ css_for_each_descendant_pre(css, &memcg->css) { child = mem_cgroup_from_css(css); BUG_ON(child->kmemcg_id != kmemcg_id); @@ -2903,6 +2904,8 @@ static void memcg_offline_kmem(struct mem_cgroup *memcg) if (!memcg->use_hierarchy) break; } + rcu_read_unlock(); + memcg_drain_all_list_lrus(kmemcg_id, parent->kmemcg_id); memcg_free_cache_id(kmemcg_id); |