]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
cgroup: simplify dynamic cftype addition and removal
authorTejun Heo <tj@kernel.org>
Wed, 12 Feb 2014 14:29:49 +0000 (09:29 -0500)
committerTejun Heo <tj@kernel.org>
Wed, 12 Feb 2014 14:29:49 +0000 (09:29 -0500)
commit21a2d3430ba8c188af405a5c2eb9c06bdcb6add6
tree7fc1d9be2e3297a53c64c7599bf2760cacbf6187
parent0adb070426dde2fd0b84e7f4f5cefcd8f0b24410
cgroup: simplify dynamic cftype addition and removal

Dynamic cftype addition and removal using cgroup_add/rm_cftypes()
respectively has been quite hairy due to vfs i_mutex.  As i_mutex
nests outside cgroup_mutex, cgroup_mutex has to be released and
regrabbed on each iteration through the hierarchy complicating the
process.  Now that i_mutex is no longer in play, it can be simplified.

* Just holding cgroup_tree_mutex is enough.  No need to meddle with
  cgroup_mutex.

* No reason to play the unlock - relock - check serial_nr dancing.
  Everything can be atomically while holding cgroup_tree_mutex.

* cgroup_cfts_prepare() is replaced with direct locking of
  cgroup_tree_mutex.

* cgroup_cfts_commit() no longer fiddles with locking.  It just
  applies the cftypes change to the existing cgroups in the hierarchy.
  Renamed to cgroup_cfts_apply().

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
kernel/cgroup.c