Commit 541a4219 authored by JP Kobryn's avatar JP Kobryn Committed by Tejun Heo
Browse files

cgroup: compare css to cgroup::self in helper for distingushing css



Adjust the implementation of css_is_cgroup() so that it compares the given
css to cgroup::self. Rename the function to css_is_self() in order to
reflect that. Change the existing css->ss NULL check to a warning in the
true branch. Finally, adjust call sites to use the new function name.

Signed-off-by: default avatarJP Kobryn <inwardvessel@gmail.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent b2713a5a
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -347,9 +347,15 @@ static inline bool css_is_dying(struct cgroup_subsys_state *css)
	return css->flags & CSS_DYING;
}

static inline bool css_is_cgroup(struct cgroup_subsys_state *css)
static inline bool css_is_self(struct cgroup_subsys_state *css)
{
	return css->ss == NULL;
	if (css == &css->cgroup->self) {
		/* cgroup::self should not have subsystem association */
		WARN_ON(css->ss != NULL);
		return true;
	}

	return false;
}

static inline void cgroup_get(struct cgroup *cgrp)
+4 −4
Original line number Diff line number Diff line
@@ -1706,7 +1706,7 @@ static void css_clear_dir(struct cgroup_subsys_state *css)

	css->flags &= ~CSS_VISIBLE;

	if (css_is_cgroup(css)) {
	if (css_is_self(css)) {
		if (cgroup_on_dfl(cgrp)) {
			cgroup_addrm_files(css, cgrp,
					   cgroup_base_files, false);
@@ -1738,7 +1738,7 @@ static int css_populate_dir(struct cgroup_subsys_state *css)
	if (css->flags & CSS_VISIBLE)
		return 0;

	if (css_is_cgroup(css)) {
	if (css_is_self(css)) {
		if (cgroup_on_dfl(cgrp)) {
			ret = cgroup_addrm_files(css, cgrp,
						 cgroup_base_files, true);
@@ -5406,7 +5406,7 @@ static void css_free_rwork_fn(struct work_struct *work)

	percpu_ref_exit(&css->refcnt);

	if (ss) {
	if (!css_is_self(css)) {
		/* css free path */
		struct cgroup_subsys_state *parent = css->parent;
		int id = css->id;
@@ -5460,7 +5460,7 @@ static void css_release_work_fn(struct work_struct *work)
	css->flags |= CSS_RELEASED;
	list_del_rcu(&css->sibling);

	if (ss) {
	if (!css_is_self(css)) {
		struct cgroup *parent_cgrp;

		/* css release path */