• Tejun Heo's avatar
    cgroup: remove cgroup_tree_mutex · 8353da1f
    Tejun Heo authored
    cgroup_tree_mutex was introduced to work around the circular
    dependency between cgroup_mutex and kernfs active protection - some
    kernfs file and directory operations needed cgroup_mutex putting
    cgroup_mutex under active protection but cgroup also needs to be able
    to access cgroup hierarchies and cftypes to determine which
    kernfs_nodes need to be removed.  cgroup_tree_mutex nested above both
    cgroup_mutex and kernfs active protection and used to protect the
    hierarchy and cftypes.  While this worked, it added a lot of double
    lockings and was generally cumbersome.
    
    kernfs provides a mechanism to opt out of active protection and cgroup
    was already using it for removal and subtree_control.  There's no
    reason to mix both methods of avoiding circular locking dependency and
    the preceding cgroup_kn_lock_live() changes applied it to all relevant
    cgroup kernfs operations making it unnecessary to nest cgroup_mutex
    under kernfs active protection.  The previous patch reversed the
    original lock ordering and put cgroup_mutex above kernfs active
    protection.
    
    After these changes, all cgroup_tree_mutex usages are now accompanied
    by cgroup_mutex making the former completely redundant.  This patch
    removes cgroup_tree_mutex and all its usages.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarLi Zefan <lizefan@huawei.com>
    8353da1f
cgroup.c 142 KB