Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7528e95b authored by Tejun Heo's avatar Tejun Heo Committed by Greg Kroah-Hartman
Browse files

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: default avatarTejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e6e9bcef
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -194,6 +194,7 @@ void release_task(struct task_struct *p)
	rcu_read_unlock();

	proc_flush_task(p);
	cgroup_release(p);

	write_lock_irq(&tasklist_lock);
	ptrace_release_task(p);
@@ -219,7 +220,6 @@ void release_task(struct task_struct *p)
	}

	write_unlock_irq(&tasklist_lock);
	cgroup_release(p);
	release_thread(p);
	call_rcu(&p->rcu, delayed_put_task_struct);