Extract the DL bandwidth allocation code in cpuset_attach() to a new
cpuset_reserve_dl_bw() helper to simplify code.

No functional change is expected.

Signed-off-by: Waiman Long <[email protected]>
Reviewed-by: Ridong Chen <[email protected]>
Reviewed-by: Gregory Price <[email protected]>
---
 kernel/cgroup/cpuset.c | 42 ++++++++++++++++++++++++------------------
 1 file changed, 24 insertions(+), 18 deletions(-)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 1f31f340e0ec..1bcc3af77c94 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -3012,6 +3012,25 @@ static int cpuset_can_attach_check(struct cpuset *cs)
        return 0;
 }
 
+static int cpuset_reserve_dl_bw(struct cpuset *cs)
+{
+       int cpu, ret;
+
+       if (!cs->sum_migrate_dl_bw)
+               return 0;
+
+       cpu = cpumask_any_and(cpu_active_mask, cs->effective_cpus);
+       if (unlikely(cpu >= nr_cpu_ids))
+               return -EINVAL;
+
+       ret = dl_bw_alloc(cpu, cs->sum_migrate_dl_bw);
+       if (ret)
+               return ret;
+
+       cs->dl_bw_cpu = cpu;
+       return 0;
+}
+
 static void reset_migrate_dl_data(struct cpuset *cs)
 {
        cs->nr_migrate_dl_tasks = 0;
@@ -3026,7 +3045,7 @@ static int cpuset_can_attach(struct cgroup_taskset *tset)
        struct cpuset *cs, *oldcs;
        struct task_struct *task;
        bool setsched_check;
-       int cpu, ret;
+       int ret;
 
        /* used later by cpuset_attach() */
        attach_ctx.old_cs = task_cs(cgroup_taskset_first(tset, &css));
@@ -3082,27 +3101,14 @@ static int cpuset_can_attach(struct cgroup_taskset 
*tset)
                }
        }
 
-       if (!cs->sum_migrate_dl_bw)
-               goto out_success;
-
-       cpu = cpumask_any_and(cpu_active_mask, cs->effective_cpus);
-       if (unlikely(cpu >= nr_cpu_ids)) {
-               ret = -EINVAL;
-               goto out_unlock;
-       }
-
-       ret = dl_bw_alloc(cpu, cs->sum_migrate_dl_bw);
-       if (ret)
-               goto out_unlock;
-
-       cs->dl_bw_cpu = cpu;
-
-out_success:
-       attach_ctx.in_progress++;
+       ret = cpuset_reserve_dl_bw(cs);
 
 out_unlock:
        if (ret)
                reset_migrate_dl_data(cs);
+       else
+               attach_ctx.in_progress++;
+
        mutex_unlock(&cpuset_mutex);
        return ret;
 }
-- 
2.54.0


Reply via email to