cgroup: rename cgroup->dummy_css to ->self and move it to the top
cgroup->dummy_css is used as the placeholder css when performing css oriended operations on the cgroup. We're gonna shift more cgroup management to this css. Let's rename it to ->self and move it to the top. This is pure rename and field relocation. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizefan@huawei.com>
This commit is contained in:
parent
a015edd26e
commit
9d800df12d
|
@ -143,6 +143,9 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cgroup {
|
struct cgroup {
|
||||||
|
/* self css with NULL ->ss, points back to this cgroup */
|
||||||
|
struct cgroup_subsys_state self;
|
||||||
|
|
||||||
unsigned long flags; /* "unsigned long" so bitops work */
|
unsigned long flags; /* "unsigned long" so bitops work */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -224,9 +227,6 @@ struct cgroup {
|
||||||
struct list_head pidlists;
|
struct list_head pidlists;
|
||||||
struct mutex pidlist_mutex;
|
struct mutex pidlist_mutex;
|
||||||
|
|
||||||
/* dummy css with NULL ->ss, points back to this cgroup */
|
|
||||||
struct cgroup_subsys_state dummy_css;
|
|
||||||
|
|
||||||
/* For css percpu_ref killing and RCU-protected deletion */
|
/* For css percpu_ref killing and RCU-protected deletion */
|
||||||
struct rcu_head rcu_head;
|
struct rcu_head rcu_head;
|
||||||
struct work_struct destroy_work;
|
struct work_struct destroy_work;
|
||||||
|
|
|
@ -220,7 +220,7 @@ static void cgroup_idr_remove(struct idr *idr, int id)
|
||||||
/**
|
/**
|
||||||
* cgroup_css - obtain a cgroup's css for the specified subsystem
|
* cgroup_css - obtain a cgroup's css for the specified subsystem
|
||||||
* @cgrp: the cgroup of interest
|
* @cgrp: the cgroup of interest
|
||||||
* @ss: the subsystem of interest (%NULL returns the dummy_css)
|
* @ss: the subsystem of interest (%NULL returns @cgrp->self)
|
||||||
*
|
*
|
||||||
* Return @cgrp's css (cgroup_subsys_state) associated with @ss. This
|
* Return @cgrp's css (cgroup_subsys_state) associated with @ss. This
|
||||||
* function must be called either under cgroup_mutex or rcu_read_lock() and
|
* function must be called either under cgroup_mutex or rcu_read_lock() and
|
||||||
|
@ -235,13 +235,13 @@ static struct cgroup_subsys_state *cgroup_css(struct cgroup *cgrp,
|
||||||
return rcu_dereference_check(cgrp->subsys[ss->id],
|
return rcu_dereference_check(cgrp->subsys[ss->id],
|
||||||
lockdep_is_held(&cgroup_mutex));
|
lockdep_is_held(&cgroup_mutex));
|
||||||
else
|
else
|
||||||
return &cgrp->dummy_css;
|
return &cgrp->self;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cgroup_e_css - obtain a cgroup's effective css for the specified subsystem
|
* cgroup_e_css - obtain a cgroup's effective css for the specified subsystem
|
||||||
* @cgrp: the cgroup of interest
|
* @cgrp: the cgroup of interest
|
||||||
* @ss: the subsystem of interest (%NULL returns the dummy_css)
|
* @ss: the subsystem of interest (%NULL returns @cgrp->self)
|
||||||
*
|
*
|
||||||
* Similar to cgroup_css() but returns the effctive css, which is defined
|
* Similar to cgroup_css() but returns the effctive css, which is defined
|
||||||
* as the matching css of the nearest ancestor including self which has @ss
|
* as the matching css of the nearest ancestor including self which has @ss
|
||||||
|
@ -254,7 +254,7 @@ static struct cgroup_subsys_state *cgroup_e_css(struct cgroup *cgrp,
|
||||||
lockdep_assert_held(&cgroup_mutex);
|
lockdep_assert_held(&cgroup_mutex);
|
||||||
|
|
||||||
if (!ss)
|
if (!ss)
|
||||||
return &cgrp->dummy_css;
|
return &cgrp->self;
|
||||||
|
|
||||||
if (!(cgrp->root->subsys_mask & (1 << ss->id)))
|
if (!(cgrp->root->subsys_mask & (1 << ss->id)))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -288,7 +288,7 @@ struct cgroup_subsys_state *of_css(struct kernfs_open_file *of)
|
||||||
if (cft->ss)
|
if (cft->ss)
|
||||||
return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
|
return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
|
||||||
else
|
else
|
||||||
return &cgrp->dummy_css;
|
return &cgrp->self;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(of_css);
|
EXPORT_SYMBOL_GPL(of_css);
|
||||||
|
|
||||||
|
@ -1551,7 +1551,7 @@ static void init_cgroup_housekeeping(struct cgroup *cgrp)
|
||||||
INIT_LIST_HEAD(&cgrp->release_list);
|
INIT_LIST_HEAD(&cgrp->release_list);
|
||||||
INIT_LIST_HEAD(&cgrp->pidlists);
|
INIT_LIST_HEAD(&cgrp->pidlists);
|
||||||
mutex_init(&cgrp->pidlist_mutex);
|
mutex_init(&cgrp->pidlist_mutex);
|
||||||
cgrp->dummy_css.cgroup = cgrp;
|
cgrp->self.cgroup = cgrp;
|
||||||
|
|
||||||
for_each_subsys(ss, ssid)
|
for_each_subsys(ss, ssid)
|
||||||
INIT_LIST_HEAD(&cgrp->e_csets[ssid]);
|
INIT_LIST_HEAD(&cgrp->e_csets[ssid]);
|
||||||
|
@ -3454,7 +3454,7 @@ int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from)
|
||||||
* ->can_attach() fails.
|
* ->can_attach() fails.
|
||||||
*/
|
*/
|
||||||
do {
|
do {
|
||||||
css_task_iter_start(&from->dummy_css, &it);
|
css_task_iter_start(&from->self, &it);
|
||||||
task = css_task_iter_next(&it);
|
task = css_task_iter_next(&it);
|
||||||
if (task)
|
if (task)
|
||||||
get_task_struct(task);
|
get_task_struct(task);
|
||||||
|
@ -3719,7 +3719,7 @@ static int pidlist_array_load(struct cgroup *cgrp, enum cgroup_filetype type,
|
||||||
if (!array)
|
if (!array)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
/* now, populate the array */
|
/* now, populate the array */
|
||||||
css_task_iter_start(&cgrp->dummy_css, &it);
|
css_task_iter_start(&cgrp->self, &it);
|
||||||
while ((tsk = css_task_iter_next(&it))) {
|
while ((tsk = css_task_iter_next(&it))) {
|
||||||
if (unlikely(n == length))
|
if (unlikely(n == length))
|
||||||
break;
|
break;
|
||||||
|
@ -3793,7 +3793,7 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry)
|
||||||
}
|
}
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
css_task_iter_start(&cgrp->dummy_css, &it);
|
css_task_iter_start(&cgrp->self, &it);
|
||||||
while ((tsk = css_task_iter_next(&it))) {
|
while ((tsk = css_task_iter_next(&it))) {
|
||||||
switch (tsk->state) {
|
switch (tsk->state) {
|
||||||
case TASK_RUNNING:
|
case TASK_RUNNING:
|
||||||
|
@ -4274,7 +4274,7 @@ static int cgroup_mkdir(struct kernfs_node *parent_kn, const char *name,
|
||||||
init_cgroup_housekeeping(cgrp);
|
init_cgroup_housekeeping(cgrp);
|
||||||
|
|
||||||
cgrp->parent = parent;
|
cgrp->parent = parent;
|
||||||
cgrp->dummy_css.parent = &parent->dummy_css;
|
cgrp->self.parent = &parent->self;
|
||||||
cgrp->root = root;
|
cgrp->root = root;
|
||||||
|
|
||||||
if (notify_on_release(parent))
|
if (notify_on_release(parent))
|
||||||
|
|
Loading…
Reference in New Issue