]> git.baikalelectronics.ru Git - kernel.git/commit
memcg: remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure
authorKirill Tkhai <ktkhai@virtuozzo.com>
Thu, 2 Aug 2018 22:36:01 +0000 (15:36 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Aug 2018 23:03:40 +0000 (16:03 -0700)
commitc9cd81d3f1157fdab0509a5de8156f6dc545fb87
tree7c0d969f5f2e12e34e4f53a94f42bcba82a4ceed
parent3636a4ad21e00181fced9f21e21857e08cb69b1f
memcg: remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

In case of memcg_online_kmem() failure, memcg_cgroup::id remains hashed
in mem_cgroup_idr even after memcg memory is freed.  This leads to leak
of ID in mem_cgroup_idr.

This patch adds removal into mem_cgroup_css_alloc(), which fixes the
problem.  For better readability, it adds a generic helper which is used
in mem_cgroup_alloc() and mem_cgroup_id_put_many() as well.

Link: http://lkml.kernel.org/r/152354470916.22460.14397070748001974638.stgit@localhost.localdomain
Fixes 4d16796051fe ("mm: memcontrol: fix cgroup creation failure after many small jobs")
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memcontrol.c