cgroup: Call cgroup_release() before __exit_signal()
authorTejun Heo <tj@kernel.org>
Fri, 31 May 2019 17:38:57 +0000 (10:38 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Aug 2019 15:52:34 +0000 (17:52 +0200)
commit7528e95b7519d24027a4362e2a05a12d4747586f
treeaeb4b27b1c59d8487362b52b1e8396bd8697725d
parente6e9bcef12ca2e2119f999d38dbca5147b06bc14
cgroup: Call cgroup_release() before __exit_signal()

commit 6b115bf58e6f013ca75e7115aabcbd56c20ff31d upstream.

cgroup_release() calls cgroup_subsys->release() which is used by the
pids controller to uncharge its pid.  We want to use it to manage
iteration of dying tasks which requires putting it before
__unhash_process().  Move cgroup_release() above __exit_signal().
While this makes it uncharge before the pid is freed, pid is RCU freed
anyway and the window is very narrow.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/exit.c