cgroup.c: add helper __cset_cgroup_from_root to cleanup duplicated codes
authorLin Feng <linf@wangsu.com>
Thu, 16 Jun 2022 10:38:30 +0000 (18:38 +0800)
committerTejun Heo <tj@kernel.org>
Thu, 16 Jun 2022 19:33:53 +0000 (09:33 -1000)
No funtionality change, but save us some lines.

Signed-off-by: Lin Feng <linf@wangsu.com>
Acked-by: Mukesh Ojha <quic_mojha@quicinc.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup/cgroup.c

index 90a654cb8a1edfb8a632045317873d4b50fc85a0..4b67e6da6bf215c2589799b3beb3142a6e30de1d 100644 (file)
@@ -1376,6 +1376,31 @@ static void cgroup_destroy_root(struct cgroup_root *root)
        cgroup_free_root(root);
 }
 
+static inline struct cgroup *__cset_cgroup_from_root(struct css_set *cset,
+                                           struct cgroup_root *root)
+{
+       struct cgroup *res_cgroup = NULL;
+
+       if (cset == &init_css_set) {
+               res_cgroup = &root->cgrp;
+       } else if (root == &cgrp_dfl_root) {
+               res_cgroup = cset->dfl_cgrp;
+       } else {
+               struct cgrp_cset_link *link;
+
+               list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {
+                       struct cgroup *c = link->cgrp;
+
+                       if (c->root == root) {
+                               res_cgroup = c;
+                               break;
+                       }
+               }
+       }
+
+       return res_cgroup;
+}
+
 /*
  * look up cgroup associated with current task's cgroup namespace on the
  * specified hierarchy
@@ -1391,22 +1416,8 @@ current_cgns_cgroup_from_root(struct cgroup_root *root)
        rcu_read_lock();
 
        cset = current->nsproxy->cgroup_ns->root_cset;
-       if (cset == &init_css_set) {
-               res = &root->cgrp;
-       } else if (root == &cgrp_dfl_root) {
-               res = cset->dfl_cgrp;
-       } else {
-               struct cgrp_cset_link *link;
-
-               list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {
-                       struct cgroup *c = link->cgrp;
+       res = __cset_cgroup_from_root(cset, root);
 
-                       if (c->root == root) {
-                               res = c;
-                               break;
-                       }
-               }
-       }
        rcu_read_unlock();
 
        BUG_ON(!res);
@@ -1422,22 +1433,7 @@ static struct cgroup *cset_cgroup_from_root(struct css_set *cset,
        lockdep_assert_held(&cgroup_mutex);
        lockdep_assert_held(&css_set_lock);
 
-       if (cset == &init_css_set) {
-               res = &root->cgrp;
-       } else if (root == &cgrp_dfl_root) {
-               res = cset->dfl_cgrp;
-       } else {
-               struct cgrp_cset_link *link;
-
-               list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {
-                       struct cgroup *c = link->cgrp;
-
-                       if (c->root == root) {
-                               res = c;
-                               break;
-                       }
-               }
-       }
+       res = __cset_cgroup_from_root(cset, root);
 
        BUG_ON(!res);
        return res;