]> err.no Git - linux-2.6/commit
exec: simplify ->sighand switching
authorOleg Nesterov <oleg@tv-sign.ru>
Wed, 17 Oct 2007 06:27:22 +0000 (23:27 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 17 Oct 2007 15:42:53 +0000 (08:42 -0700)
commit0840a90d943bcde2fbfeabd3c256236eed2273cd
treed423a5b7576f6ba35494aac06c97c6c21dac9bcf
parent2b47c3611de05c585e2d81204f6c7e3e255a3461
exec: simplify ->sighand switching

There is no any reason to do recalc_sigpending() after changing ->sighand.
To begin with, recalc_sigpending() does not take ->sighand into account.

This means we don't need to take newsighand->siglock while changing sighands.
rcu_assign_pointer() provides a necessary barrier, and if another process
reads the new ->sighand it should either take tasklist_lock or it should use
lock_task_sighand() which has a corresponding smp_read_barrier_depends().

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/exec.c