__kill_pgrp_info: simplify the calculation of return value
No need to calculate/check the "success" variable, we can kill it and update retval in the main loop unless it is zero. Link: https://lkml.kernel.org/r/20230823171455.GA12188@redhat.com Signed-off-by: Oleg Nesterov <oleg@redhat.com> Suggested-by: David Laight <David.Laight@ACULAB.COM> Cc: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
8e1f385104
commit
3983520491
|
@ -1471,16 +1471,21 @@ int group_send_sig_info(int sig, struct kernel_siginfo *info,
|
|||
int __kill_pgrp_info(int sig, struct kernel_siginfo *info, struct pid *pgrp)
|
||||
{
|
||||
struct task_struct *p = NULL;
|
||||
int retval, success;
|
||||
int ret = -ESRCH;
|
||||
|
||||
success = 0;
|
||||
retval = -ESRCH;
|
||||
do_each_pid_task(pgrp, PIDTYPE_PGID, p) {
|
||||
int err = group_send_sig_info(sig, info, p, PIDTYPE_PGID);
|
||||
success |= !err;
|
||||
retval = err;
|
||||
/*
|
||||
* If group_send_sig_info() succeeds at least once ret
|
||||
* becomes 0 and after that the code below has no effect.
|
||||
* Otherwise we return the last err or -ESRCH if this
|
||||
* process group is empty.
|
||||
*/
|
||||
if (ret)
|
||||
ret = err;
|
||||
} while_each_pid_task(pgrp, PIDTYPE_PGID, p);
|
||||
return success ? 0 : retval;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int kill_pid_info(int sig, struct kernel_siginfo *info, struct pid *pid)
|
||||
|
|
Loading…
Reference in New Issue