summaryrefslogtreecommitdiff
path: root/kernel/cpuset.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-02-13 13:29:31 -0500
committerTejun Heo <tj@kernel.org>2014-02-18 18:23:18 -0500
commit532de3fc72adc2a6525c4d53c07bf81e1732083d (patch)
tree72ee4b0fe873589f814939a3b4e60fedb1f9c6ef /kernel/cpuset.c
parent1a11533fbd71792e8c5d36f6763fbce8df0d231d (diff)
cgroup: update cgroup_enable_task_cg_lists() to grab siglock
Currently, there's nothing preventing cgroup_enable_task_cg_lists() from missing set PF_EXITING and race against cgroup_exit(). Depending on the timing, cgroup_exit() may finish with the task still linked on css_set leading to list corruption. Fix it by grabbing siglock in cgroup_enable_task_cg_lists() so that PF_EXITING is guaranteed to be visible. This whole on-demand cg_list optimization is extremely fragile and has ample possibility to lead to bugs which can cause things like once-a-year oops during boot. I'm wondering whether the better approach would be just adding "cgroup_disable=all" handling which disables the whole cgroup rather than tempting fate with this on-demand craziness. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizefan@huawei.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'kernel/cpuset.c')
0 files changed, 0 insertions, 0 deletions