[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: Oleg 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: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
a98b609426
commit
d7c3f5f231
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue