• Tejun Heo's avatar
    cgroup: make cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() recursive · ce3f1d9d
    Tejun Heo authored
    The three factored out css management operations -
    cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() -
    only depend on the current state of the target cgroups and idempotent
    and thus can be easily made to operate on the subtree instead of the
    immediate children.
    
    This patch introduces the iterators which walk live subtree and
    converts the three functions to operate on the subtree including self
    instead of the children.  While this leads to spurious walking and be
    slightly more expensive, it will allow them to be used for wider scope
    of operations.
    
    Note that cgroup_drain_offline() now tests for whether a css is dying
    before trying to drain it.  This is to avoid trying to drain live
    csses as there can be mix of live and dying csses in a subtree unlike
    children of the same parent.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarZefan Li <lizefan@huawei.com>
    ce3f1d9d
cgroup.c 166 KB