cgroup_freezer: don't use cgroup_lock_live_group()
authorTejun Heo <tj@kernel.org>
Tue, 16 Oct 2012 22:03:15 +0000 (15:03 -0700)
committerTejun Heo <tj@kernel.org>
Sat, 20 Oct 2012 23:33:12 +0000 (16:33 -0700)
commitead5c473712eb26db792b18a4dc98fdb312883fe
treeb1700298660d970e7e09d9ec60cc49c36c64e695
parentb4d18311d37b0b1b370a1ef3e4de92b97930f0a8
cgroup_freezer: don't use cgroup_lock_live_group()

freezer_read/write() used cgroup_lock_live_group() to synchronize
against task migration into and out of the target cgroup.
cgroup_lock_live_group() grabs the internal cgroup lock and using it
from outside cgroup core leads to complex and fragile locking
dependency issues which are difficult to resolve.

Now that freezer_can_attach() is replaced with freezer_attach() and
update_if_frozen() updated, nothing requires excluding migration
against freezer state reads and changes.

This patch removes cgroup_lock_live_group() and the matching
cgroup_unlock() usages.  The prone-to-bitrot, already outdated and
unnecessary global lock hierarchy documentation is replaced with
documentation in local scope.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Li Zefan <lizefan@huawei.com>
kernel/cgroup_freezer.c