Commit 9d800df1 authored by Tejun Heo's avatar Tejun Heo

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: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarLi Zefan <lizefan@huawei.com>
parent a015edd2
...@@ -143,6 +143,9 @@ enum { ...@@ -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 { ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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, ...@@ -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))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment