.. | .. |
---|
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, |
---|