Tejun Heo 945ba19968 cgroup: combine cgroup_mutex locking and offline css draining
cgroup_drain_offline() is used to wait for csses being offlined to
uninstall itself from cgroup->subsys[] array so that new csses can be
installed.  The function's only user, cgroup_subtree_control_write(),
calls it after performing some checks and restarts the whole process
via restart_syscall() if draining has to release cgroup_mutex to wait.

This can be simplified by draining before other synchronized
operations so that there's nothing to restart.  This patch converts
cgroup_drain_offline() to cgroup_lock_and_drain_offline() which
performs both locking and draining and updates cgroup_kn_lock_live()
use it instead of cgroup_mutex() if requested.  This combined locking
and draining operations are easier to use and less error-prone.

While at it, add WARNs in control_apply functions which triggers if
the subtree isn't properly drained.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Zefan Li <lizefan@huawei.com>
2016-03-03 09:58:00 -05:00
..
2016-01-12 17:06:53 -05:00
2015-12-04 22:46:25 +01:00
2016-01-21 00:43:21 +01:00
2015-04-11 22:27:55 -04:00
2015-11-19 17:51:48 +01:00
2015-12-14 14:54:37 -05:00
2015-04-12 21:03:31 +02:00
2016-01-14 16:00:49 -08:00
2015-11-23 09:44:58 +01:00
2015-01-17 10:02:23 +13:00
2014-12-10 17:41:10 -08:00
2016-01-20 17:09:18 -08:00