On 04/02, Eric W. Biederman wrote:
Oleg Nesterov [off-list ref] writes:
quoted
And btw zap_other_threads(may_hang == 0) is racy. Either you need tasklist or
exit_notify() should set tsk->exit_state under siglock, otherwise zap() can
return the wrong count.
zap_other_thread(tsk, 0) only gets called in the case where we don't
care about the return value. It does not get called from fs/exec.c
I meant that may_hang == 0 implies zap_other_threads(do_count => -1) which should
return the number of threads which didn't pass exit_notify(). The returned value
can be wrong unless you change exit_notify() to set exit_state under siglock.
Oleg.