| .. | .. |
|---|
| 455 | 455 | extern spinlock_t css_set_lock; |
|---|
| 456 | 456 | #define task_css_set_check(task, __c) \ |
|---|
| 457 | 457 | rcu_dereference_check((task)->cgroups, \ |
|---|
| 458 | + rcu_read_lock_sched_held() || \ |
|---|
| 458 | 459 | lockdep_is_held(&cgroup_mutex) || \ |
|---|
| 459 | 460 | lockdep_is_held(&css_set_lock) || \ |
|---|
| 460 | 461 | ((task)->flags & PF_EXITING) || (__c)) |
|---|
| .. | .. |
|---|
| 790 | 791 | |
|---|
| 791 | 792 | cpuacct_charge(task, delta_exec); |
|---|
| 792 | 793 | |
|---|
| 793 | | - rcu_read_lock(); |
|---|
| 794 | 794 | cgrp = task_dfl_cgroup(task); |
|---|
| 795 | 795 | if (cgroup_parent(cgrp)) |
|---|
| 796 | 796 | __cgroup_account_cputime(cgrp, delta_exec); |
|---|
| 797 | | - rcu_read_unlock(); |
|---|
| 798 | 797 | } |
|---|
| 799 | 798 | |
|---|
| 800 | 799 | static inline void cgroup_account_cputime_field(struct task_struct *task, |
|---|