aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-17 18:23:45 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-17 18:23:45 -0700
commit3a948de76cd625264c6fbea172a51cf5d76cd12b (patch)
tree0387968359d376f954d49c6191ad9a38cbed2d9e /kernel
parent5adf0d582a52afbfaf798d0eb94f51a030786e02 (diff)
downloadhistory-3a948de76cd625264c6fbea172a51cf5d76cd12b.tar.gz
Fix kill_pg_info(): return success if _any_ signal succeeded.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/signal.c18
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