• Tejun Heo's avatar
    cgroup: make sure a parent css isn't freed before its children · cef12dbf
    Tejun Heo authored
    [ Upstream commit 8bb5ef79 ]
    
    There are three subsystem callbacks in css shutdown path -
    css_offline(), css_released() and css_free().  Except for
    css_released(), cgroup core didn't guarantee the order of invocation.
    css_offline() or css_free() could be called on a parent css before its
    children.  This behavior is unexpected and led to bugs in cpu and
    memory controller.
    
    The previous patch updated ordering for css_offline() which fixes the
    cpu controller issue.  While there currently isn't a known bug caused
    by misordering of css_free() invocations, let's fix it too for
    consistency.
    
    css_free() ordering can be trivially fixed by moving putting of the
    parent css below css_free() invocation.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    cef12dbf
cgroup.c 150 KB