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: JP Kobryn <inwardvessel@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
pull/1250/head
JP Kobryn 2025-05-14 17:19:33 -07:00 committed by Tejun Heo
parent b2713a5ad3
commit 541a4219bd
2 changed files with 12 additions and 6 deletions

View File

@ -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)

View File

@ -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 */