Kirill Tkhai
7e97de0b03
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 73f576c04b94 ("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>
2018-08-02 16:03:40 -07:00
..
2018-07-03 17:32:19 -07:00
2018-06-22 12:08:07 -06:00
2017-11-14 23:57:38 +02:00
2018-02-06 18:32:48 -08:00
2018-06-15 07:55:25 +09:00
2018-06-15 07:55:25 +09:00
2018-05-24 10:07:50 -07:00
2017-11-02 11:10:55 +01:00
2018-06-15 07:55:25 +09:00
2017-11-02 11:10:55 +01:00
2018-07-03 17:32:19 -07:00
2018-06-15 07:55:25 +09:00
2017-12-11 14:54:44 +01:00
2018-04-02 20:16:10 +02:00
2018-06-15 07:55:25 +09:00
2018-06-07 17:34:36 -07:00
2017-12-14 16:00:48 -08:00
2018-06-15 07:55:25 +09:00
2018-06-12 16:19:22 -07:00
2018-07-14 11:11:10 -07:00
2017-11-02 11:10:55 +01:00
2018-05-22 06:59:39 -07:00
2018-07-21 12:50:46 -07:00
2018-06-07 17:34:35 -07:00
2018-07-03 17:32:19 -07:00
2018-01-23 12:17:42 -06:00
2018-06-07 17:34:34 -07:00
2018-06-05 13:24:20 -07:00
2018-01-31 17:18:37 -08:00
2018-06-08 17:21:52 -07:00
2017-11-15 18:21:05 -08:00
2018-04-11 10:28:39 -07:00
2016-03-17 15:09:34 -07:00
2018-04-05 21:36:27 -07:00
2018-06-15 07:55:23 +09:00
2018-04-05 21:36:27 -07:00
2018-02-06 18:32:48 -08:00
2018-01-23 12:17:42 -06:00
2018-06-07 17:34:35 -07:00
2018-07-21 12:50:46 -07:00
2018-08-02 16:03:40 -07:00
2018-06-07 17:34:35 -07:00
2018-06-07 17:34:36 -07:00
2018-04-11 10:28:32 -07:00
2018-08-01 12:23:45 -07:00
2018-07-26 19:38:03 -07:00
2018-05-14 13:14:23 -06:00
2017-11-02 11:10:55 +01:00
2018-05-11 17:28:45 -07:00
2017-11-02 11:10:55 +01:00
2018-02-21 15:35:42 -08:00
2016-03-17 15:09:34 -07:00
2018-07-26 19:38:03 -07:00
2017-03-02 08:42:38 +01:00
2018-01-31 17:18:38 -08:00
2017-11-02 11:10:55 +01:00
2018-04-11 10:28:31 -07:00
2018-06-15 07:55:24 +09:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-07-26 19:38:03 -07:00
2018-06-15 07:55:25 +09:00
2018-07-16 09:41:57 -07:00
2018-06-07 17:34:36 -07:00
2018-01-31 17:18:39 -08:00
2018-06-15 07:55:25 +09:00
2018-01-06 09:18:00 -07:00
2018-04-11 10:28:32 -07:00
2018-06-15 07:55:25 +09:00
2018-04-05 21:36:26 -07:00
2018-01-22 12:15:57 -08:00
2018-04-20 17:18:35 -07:00
2018-04-05 21:36:27 -07:00
2017-11-02 11:10:55 +01:00
2018-02-18 05:33:01 -08:00
2018-06-12 16:19:22 -07:00
2018-02-18 05:33:01 -08:00
2018-04-02 20:20:12 -07:00
2018-01-31 17:18:38 -08:00
2018-02-06 18:32:48 -08:00
2017-11-02 11:10:55 +01:00
2018-06-01 18:37:32 -07:00
2018-07-14 11:11:09 -07:00
2017-10-03 17:54:24 -07:00
2018-07-26 19:38:03 -07:00
2018-06-28 11:16:44 -07:00
2018-06-12 16:19:22 -07:00
2018-04-05 21:36:24 -07:00
2018-06-07 17:34:34 -07:00
2018-06-28 11:16:44 -07:00
2018-01-08 11:46:23 -08:00
2018-06-07 17:34:35 -07:00
2017-11-02 11:10:55 +01:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-05-22 06:59:39 -07:00
2018-06-15 07:55:23 +09:00
2018-04-11 10:28:39 -07:00
2018-01-15 12:07:48 -08:00
2018-06-07 17:34:38 -07:00
2018-06-07 17:34:38 -07:00
2017-11-02 11:10:55 +01:00
2018-06-15 07:55:25 +09:00
2018-06-07 17:34:36 -07:00
2018-06-07 17:34:36 -07:00
2018-06-28 11:16:44 -07:00
2018-04-11 10:28:39 -07:00
2018-05-11 17:28:45 -07:00
2018-02-06 18:32:48 -08:00
2018-02-21 15:35:43 -08:00
2018-06-15 07:55:25 +09:00
2018-07-26 19:38:03 -07:00