From 1b86b577e5f291f646a08364f31982157c78f668 Mon Sep 17 00:00:00 2001 From: Michal Hocko Date: Thu, 12 Jan 2012 17:18:50 -0800 Subject: [PATCH] --- yaml --- r: 284383 b: refs/heads/master c: c3cecc683446ad54ca587d7123bd3ce94bd7b8e1 h: refs/heads/master i: 284381: 803c3205094a23345bd52e087957b854c362e670 284379: fc7c1c5ffa9751b3ecee85ccbcd69fe89247cdc8 284375: 42b231ad8e06d944abc597087e3ed8a888fd8b45 284367: 4e823b020f25350c2a1195199e69cb0fe512fb33 284351: 80a39ad19eaef1bf1472d681c3f174fb2e9db357 v: v3 --- [refs] | 2 +- trunk/mm/memcontrol.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e0d034c77c16..5596d6a6f368 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9fb4b7cc0724f178d4b24a2a566ea1e7cb120b82 +refs/heads/master: c3cecc683446ad54ca587d7123bd3ce94bd7b8e1 diff --git a/trunk/mm/memcontrol.c b/trunk/mm/memcontrol.c index 4c53e971749e..2a1f7847b6ad 100644 --- a/trunk/mm/memcontrol.c +++ b/trunk/mm/memcontrol.c @@ -4960,7 +4960,7 @@ static int mem_cgroup_soft_limit_tree_init(void) tmp = -1; rtpn = kzalloc_node(sizeof(*rtpn), GFP_KERNEL, tmp); if (!rtpn) - return 1; + goto err_cleanup; soft_limit_tree.rb_tree_per_node[node] = rtpn; @@ -4971,6 +4971,16 @@ static int mem_cgroup_soft_limit_tree_init(void) } } return 0; + +err_cleanup: + for_each_node_state(node, N_POSSIBLE) { + if (!soft_limit_tree.rb_tree_per_node[node]) + break; + kfree(soft_limit_tree.rb_tree_per_node[node]); + soft_limit_tree.rb_tree_per_node[node] = NULL; + } + return 1; + } static struct cgroup_subsys_state * __ref