Li Zefan
916b6c67cd
cgroup: fix exit() vs rmdir() race
...
commit 71b5707e11 upstream.
In cgroup_exit() put_css_set_taskexit() is called without any lock,
which might lead to accessing a freed cgroup:
thread1 thread2
---------------------------------------------
exit()
cgroup_exit()
put_css_set_taskexit()
atomic_dec(cgrp->count);
rmdir();
/* not safe !! */
check_for_release(cgrp);
rcu_read_lock() can be used to make sure the cgroup is alive.
Signed-off-by: Li Zefan <lizefan@huawei.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2013-03-04 06:06:44 +08:00
..
2012-10-21 09:27:59 -07:00
2012-10-02 10:29:54 -07:00
2013-02-28 06:58:58 -08:00
2012-08-09 08:31:29 -07:00
2013-02-11 08:47:18 -08:00
2012-12-03 11:47:23 -08:00
2013-03-04 06:06:38 +08:00
2012-01-08 12:19:57 -08:00
2012-10-02 10:30:35 -07:00
2012-09-14 10:00:18 -07:00
2012-03-20 21:29:40 -04:00
2012-01-17 16:16:57 -05:00
2012-01-17 16:17:01 -05:00
2012-01-23 08:44:53 -08:00
2012-01-17 10:19:41 -08:00
2012-02-02 09:20:22 -08:00
2013-03-04 06:06:44 +08:00
2012-05-10 08:58:33 -07:00
2011-09-23 12:05:29 +05:30
2012-01-08 13:10:57 -08:00
2013-03-04 06:06:44 +08:00
2011-11-06 19:44:47 -08:00
2012-04-11 08:20:11 -07:00
2012-03-28 18:30:03 +01:00
2012-08-09 08:31:39 -07:00
2012-06-10 00:36:06 +09:00
2012-03-04 23:08:54 +01:00
2013-02-28 06:59:01 -08:00
2013-02-28 06:59:01 -08:00
2011-10-31 09:20:12 -04:00
2013-02-28 06:58:59 -08:00
2012-03-05 15:49:42 -08:00
2012-04-13 13:15:16 -04:00
2012-04-10 11:00:30 +02:00
2012-02-28 20:01:08 +01:00
2012-03-23 13:18:57 +01:00
2012-03-23 13:18:57 +01:00
2012-03-28 17:19:28 -07:00
2011-10-31 09:20:12 -04:00
2012-03-28 23:30:28 +02:00
2012-03-05 15:49:42 -08:00
2011-10-31 09:20:13 -04:00
2012-10-02 10:30:40 -07:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2012-02-21 09:06:06 -08:00
2012-01-24 16:37:54 -08:00
2012-11-26 11:37:41 -08:00
2011-10-31 09:20:12 -04:00
2012-03-01 10:28:03 +01:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2012-03-29 19:52:46 +08:00
2012-06-22 11:36:56 -07:00
2012-03-26 12:50:51 +10:30
2012-03-28 17:14:36 -07:00
2012-02-13 20:45:38 -05:00
2013-02-28 06:58:59 -08:00
2013-03-04 06:06:38 +08:00
2013-02-21 10:04:57 -08:00
2011-10-31 09:20:12 -04:00
2013-01-27 20:47:43 -08:00
2011-10-31 09:20:11 -04:00
2012-02-21 09:06:12 -08:00
2012-02-21 09:06:03 -08:00
2012-02-21 09:03:43 -08:00
2012-02-21 09:06:13 -08:00
2012-02-21 09:06:10 -08:00
2012-02-21 09:42:30 -08:00
2012-02-21 09:06:07 -08:00
2012-12-17 10:37:46 -08:00
2012-02-21 09:06:07 -08:00
2012-07-16 09:04:42 -07:00
2012-01-22 15:08:46 -05:00
2013-02-14 10:48:53 -08:00
2011-12-06 08:16:49 +01:00
2011-12-14 14:54:22 -08:00
2011-12-11 10:33:18 -08:00
2012-03-28 18:30:03 +01:00
2012-01-17 16:16:55 -05:00
2011-10-31 09:20:12 -04:00
2013-01-27 20:47:43 -08:00
2013-02-03 18:24:42 -06:00
2012-03-20 10:32:09 -07:00
2012-03-23 13:18:57 +01:00
2012-02-21 09:06:08 -08:00
2011-10-31 09:20:12 -04:00
2011-11-06 19:44:47 -08:00
2011-10-31 17:30:44 -07:00
2012-10-28 10:14:13 -07:00
2013-03-04 06:06:41 +08:00
2012-04-05 14:51:43 +10:00
2011-09-19 17:04:37 -07:00
2012-03-15 18:17:55 -07:00
2013-02-28 06:58:58 -08:00
2012-10-21 09:27:59 -07:00
2012-02-24 10:05:59 +01:00
2011-12-15 14:56:19 +01:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-11-06 19:44:47 -08:00
2011-10-31 09:20:12 -04:00
2011-12-21 10:07:39 +01:00
2012-12-03 11:47:17 -08:00
2012-12-17 10:37:43 -08:00