aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched_autogroup.c4
-rw-r--r--kernel/sched_autogroup.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/kernel/sched_autogroup.c b/kernel/sched_autogroup.c
index 9fb656283157..137a096ae9d8 100644
--- a/kernel/sched_autogroup.c
+++ b/kernel/sched_autogroup.c
@@ -161,11 +161,15 @@ autogroup_move_group(struct task_struct *p, struct autogroup *ag)
161 161
162 p->signal->autogroup = autogroup_kref_get(ag); 162 p->signal->autogroup = autogroup_kref_get(ag);
163 163
164 if (!ACCESS_ONCE(sysctl_sched_autogroup_enabled))
165 goto out;
166
164 t = p; 167 t = p;
165 do { 168 do {
166 sched_move_task(t); 169 sched_move_task(t);
167 } while_each_thread(p, t); 170 } while_each_thread(p, t);
168 171
172out:
169 unlock_task_sighand(p, &flags); 173 unlock_task_sighand(p, &flags);
170 autogroup_kref_put(prev); 174 autogroup_kref_put(prev);
171} 175}
diff --git a/kernel/sched_autogroup.h b/kernel/sched_autogroup.h
index 7b859ffe5dad..05577055cfca 100644
--- a/kernel/sched_autogroup.h
+++ b/kernel/sched_autogroup.h
@@ -1,6 +1,11 @@
1#ifdef CONFIG_SCHED_AUTOGROUP 1#ifdef CONFIG_SCHED_AUTOGROUP
2 2
3struct autogroup { 3struct autogroup {
4 /*
5 * reference doesn't mean how many thread attach to this
6 * autogroup now. It just stands for the number of task
7 * could use this autogroup.
8 */
4 struct kref kref; 9 struct kref kref;
5 struct task_group *tg; 10 struct task_group *tg;
6 struct rw_semaphore lock; 11 struct rw_semaphore lock;