diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-17 18:23:45 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-17 18:23:45 -0700 |
commit | 3a948de76cd625264c6fbea172a51cf5d76cd12b (patch) | |
tree | 0387968359d376f954d49c6191ad9a38cbed2d9e /kernel | |
parent | 5adf0d582a52afbfaf798d0eb94f51a030786e02 (diff) | |
download | history-3a948de76cd625264c6fbea172a51cf5d76cd12b.tar.gz |
Fix kill_pg_info(): return success if _any_ signal succeeded.
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/signal.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index e734221afc70fa..d1b3e9250f3796 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1071,23 +1071,19 @@ int __kill_pg_info(int sig, struct siginfo *info, pid_t pgrp) struct task_struct *p; struct list_head *l; struct pid *pid; - int retval; - int found; + int retval, success; if (pgrp <= 0) return -EINVAL; - found = 0; - retval = 0; + success = 0; + retval = -ESRCH; for_each_task_pid(pgrp, PIDTYPE_PGID, p, l, pid) { - int err; - - found = 1; - err = group_send_sig_info(sig, info, p); - if (!retval) - retval = err; + int err = group_send_sig_info(sig, info, p); + success |= !err; + retval = err; } - return found ? retval : -ESRCH; + return success ? 0 : retval; } int |