• Tejun Heo's avatar
    cgroup: refactor hierarchy_id handling · fa3ca07e
    Tejun Heo authored
    We're planning to converting hierarchy_ida to an idr and use it to
    look up hierarchy from its id.  As we want the mapping to happen
    atomically with cgroupfs_root registration, this patch refactors
    hierarchy_id init / exit so that ida operations happen inside
    cgroup_[root_]mutex.
    
    * s/init_root_id()/cgroup_init_root_id()/ and make it return 0 or
      -errno like a normal function.
    
    * Move hierarchy_id initialization from cgroup_root_from_opts() into
      cgroup_mount() block where the root is confirmed to be used and
      being registered while holding both mutexes.
    
    * Split cgroup_drop_id() into cgroup_exit_root_id() and
      cgroup_free_root(), so that ID release can happen before dropping
      the mutexes in cgroup_kill_sb().  The latter expects hierarchy_id to
      be exited before being invoked.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarLi Zefan <lizefan@huawei.com>
    fa3ca07e
cgroup.c 143 KB