[PATCH] taskstats_tgid_free: fix usage
authorOleg Nesterov <oleg@tv-sign.ru>
Sat, 28 Oct 2006 17:38:51 +0000 (10:38 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 28 Oct 2006 18:30:54 +0000 (11:30 -0700)
commit093a8e8aecd77b2799934996a55a6838e1e2b8f3
treeece87b2e194494059b2d4aaa43a094786dac1db7
parent05d5bcd60e8202e5c7b28cf61186043a4d612623
[PATCH] taskstats_tgid_free: fix usage

taskstats_tgid_free() is called on copy_process's error path. This is wrong.

IF (clone_flags & CLONE_THREAD)
We should not clear ->signal->taskstats, current uses it,
it probably has a valid accumulated info.
ELSE
taskstats_tgid_init() set ->signal->taskstats = NULL,
there is nothing to free.

Move the callsite to __exit_signal(). We don't need any locking, entire
thread group is exiting, nobody should have a reference to soon to be
released ->signal.

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>
include/linux/taskstats_kern.h
kernel/exit.c
kernel/fork.c