/*
* This function is used while updating css associations and thus
- * can't test the csses directly. Use ->child_subsys_mask.
+ * can't test the csses directly. Use ->subtree_ss_mask.
*/
while (cgroup_parent(cgrp) &&
- !(cgroup_parent(cgrp)->child_subsys_mask & (1 << ss->id)))
+ !(cgroup_parent(cgrp)->subtree_ss_mask & (1 << ss->id)))
cgrp = cgroup_parent(cgrp);
return cgroup_css(cgrp, ss);
}
/**
- * cgroup_calc_child_subsys_mask - calculate child_subsys_mask
+ * cgroup_calc_subtree_ss_mask - calculate subtree_ss_mask
* @cgrp: the target cgroup
* @subtree_control: the new subtree_control mask to consider
*
* @subtree_control is to be applied to @cgrp. The returned mask is always
* a superset of @subtree_control and follows the usual hierarchy rules.
*/
-static unsigned long cgroup_calc_child_subsys_mask(struct cgroup *cgrp,
- unsigned long subtree_control)
+static unsigned long cgroup_calc_subtree_ss_mask(struct cgroup *cgrp,
+ unsigned long subtree_control)
{
struct cgroup *parent = cgroup_parent(cgrp);
unsigned long cur_ss_mask = subtree_control;
* to non-default hierarchies.
*/
if (parent)
- new_ss_mask &= parent->child_subsys_mask;
+ new_ss_mask &= parent->subtree_ss_mask;
else
new_ss_mask &= cgrp->root->subsys_mask;
}
/**
- * cgroup_refresh_child_subsys_mask - update child_subsys_mask
+ * cgroup_refresh_subtree_ss_mask - update subtree_ss_mask
* @cgrp: the target cgroup
*
- * Update @cgrp->child_subsys_mask according to the current
- * @cgrp->subtree_control using cgroup_calc_child_subsys_mask().
+ * Update @cgrp->subtree_ss_mask according to the current
+ * @cgrp->subtree_control using cgroup_calc_subtree_ss_mask().
*/
-static void cgroup_refresh_child_subsys_mask(struct cgroup *cgrp)
+static void cgroup_refresh_subtree_ss_mask(struct cgroup *cgrp)
{
- cgrp->child_subsys_mask =
- cgroup_calc_child_subsys_mask(cgrp, cgrp->subtree_control);
+ cgrp->subtree_ss_mask =
+ cgroup_calc_subtree_ss_mask(cgrp, cgrp->subtree_control);
}
/**
src_root->subsys_mask &= ~(1 << ssid);
scgrp->subtree_control &= ~(1 << ssid);
- cgroup_refresh_child_subsys_mask(scgrp);
+ cgroup_refresh_subtree_ss_mask(scgrp);
/* default hierarchy doesn't enable controllers by default */
dst_root->subsys_mask |= 1 << ssid;
static_branch_enable(cgroup_subsys_on_dfl_key[ssid]);
} else {
dcgrp->subtree_control |= 1 << ssid;
- cgroup_refresh_child_subsys_mask(dcgrp);
+ cgroup_refresh_subtree_ss_mask(dcgrp);
static_branch_disable(cgroup_subsys_on_dfl_key[ssid]);
}
lockdep_assert_held(&cgroup_mutex);
/*
- * Except for the root, child_subsys_mask must be zero for a cgroup
+ * Except for the root, subtree_ss_mask must be zero for a cgroup
* with tasks so that child cgroups don't compete against tasks.
*/
if (dst_cgrp && cgroup_on_dfl(dst_cgrp) && cgroup_parent(dst_cgrp) &&
- dst_cgrp->child_subsys_mask)
+ dst_cgrp->subtree_ss_mask)
return -EBUSY;
/* look up the dst cset for each src cset and link it to src */
* cgroup_update_dfl_csses - update css assoc of a subtree in default hierarchy
* @cgrp: root of the subtree to update csses for
*
- * @cgrp's child_subsys_mask has changed and its subtree's (self excluded)
+ * @cgrp's subtree_ss_mask has changed and its subtree's (self excluded)
* css associations need to be updated accordingly. This function looks up
* all css_sets which are attached to the subtree, creates the matching
* updated css_sets and migrates the tasks to the new ones.
css_for_each_descendant_pre(css, cgroup_css(cgrp, NULL)) {
struct cgrp_cset_link *link;
- /* self is not affected by child_subsys_mask change */
+ /* self is not affected by subtree_ss_mask change */
if (css->cgroup == cgrp)
continue;
* depending on subsystem dependencies.
*/
old_sc = cgrp->subtree_control;
- old_ss = cgrp->child_subsys_mask;
+ old_ss = cgrp->subtree_ss_mask;
new_sc = (old_sc | enable) & ~disable;
- new_ss = cgroup_calc_child_subsys_mask(cgrp, new_sc);
+ new_ss = cgroup_calc_subtree_ss_mask(cgrp, new_sc);
css_enable = ~old_ss & new_ss;
css_disable = old_ss & ~new_ss;
}
cgrp->subtree_control = new_sc;
- cgrp->child_subsys_mask = new_ss;
+ cgrp->subtree_ss_mask = new_ss;
/*
* Create new csses or make the existing ones visible. A css is
err_undo_css:
cgrp->subtree_control = old_sc;
- cgrp->child_subsys_mask = old_ss;
+ cgrp->subtree_ss_mask = old_ss;
for_each_subsys(ss, ssid) {
if (!(enable & (1 << ssid)))
/* let's create and online css's */
for_each_subsys(ss, ssid) {
- if (parent->child_subsys_mask & (1 << ssid)) {
+ if (parent->subtree_ss_mask & (1 << ssid)) {
ret = create_css(cgrp, ss,
parent->subtree_control & (1 << ssid));
if (ret)
*/
if (!cgroup_on_dfl(cgrp)) {
cgrp->subtree_control = parent->subtree_control;
- cgroup_refresh_child_subsys_mask(cgrp);
+ cgroup_refresh_subtree_ss_mask(cgrp);
}
kernfs_activate(kn);