提交 d7c3f5f2 编写于 作者: O Oleg Nesterov 提交者: Linus Torvalds

[PATCH] fill_tgid: cleanup delays accounting

fill_tgid() should skip not only an already exited group leader.  If the
task has ->exit_state != 0 it already did exit_notify(), so it also did
fill_tgid_exit()->delayacct_add_tsk(->signal->stats) and we should skip it
to avoid a double accounting.

This patch doesn't close the race completely, but it cleanups the code.
Signed-off-by: NOleg Nesterov <oleg@tv-sign.ru>
Cc: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Jay Lan <jlan@sgi.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 a98b6094
...@@ -235,7 +235,7 @@ static int fill_tgid(pid_t tgid, struct task_struct *first, ...@@ -235,7 +235,7 @@ static int fill_tgid(pid_t tgid, struct task_struct *first,
tsk = first; tsk = first;
do { do {
if (tsk->exit_state == EXIT_ZOMBIE && thread_group_leader(tsk)) if (tsk->exit_state)
continue; continue;
/* /*
* Accounting subsystem can call its functions here to * Accounting subsystem can call its functions here to
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册