diff options
| -rw-r--r-- | kernel/cgroup_freezer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c index da5e13975531..e5c0244962b0 100644 --- a/kernel/cgroup_freezer.c +++ b/kernel/cgroup_freezer.c | |||
| @@ -205,9 +205,12 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task) | |||
| 205 | * No lock is needed, since the task isn't on tasklist yet, | 205 | * No lock is needed, since the task isn't on tasklist yet, |
| 206 | * so it can't be moved to another cgroup, which means the | 206 | * so it can't be moved to another cgroup, which means the |
| 207 | * freezer won't be removed and will be valid during this | 207 | * freezer won't be removed and will be valid during this |
| 208 | * function call. | 208 | * function call. Nevertheless, apply RCU read-side critical |
| 209 | * section to suppress RCU lockdep false positives. | ||
| 209 | */ | 210 | */ |
| 211 | rcu_read_lock(); | ||
| 210 | freezer = task_freezer(task); | 212 | freezer = task_freezer(task); |
| 213 | rcu_read_unlock(); | ||
| 211 | 214 | ||
| 212 | /* | 215 | /* |
| 213 | * The root cgroup is non-freezable, so we can skip the | 216 | * The root cgroup is non-freezable, so we can skip the |
