Author: eadler
Date: Mon Oct 22 03:36:44 2012
New Revision: 241854
URL: http://svn.freebsd.org/changeset/base/241854

Log:
  Colin acked the wrong diff originally. fixed version coming soon.
  
  Approved by:  cperciva (implicit)

Modified:
  head/sys/kern/kern_sig.c

Modified: head/sys/kern/kern_sig.c
==============================================================================
--- head/sys/kern/kern_sig.c    Mon Oct 22 03:34:43 2012        (r241853)
+++ head/sys/kern/kern_sig.c    Mon Oct 22 03:36:44 2012        (r241854)
@@ -1599,10 +1599,8 @@ killpg1(struct thread *td, int sig, int 
 {
        struct proc *p;
        struct pgrp *pgrp;
-       int err;
-       int ret;
+       int nfound = 0;
 
-       ret = ESRCH;
        if (all) {
                /*
                 * broadcast
@@ -1615,14 +1613,11 @@ killpg1(struct thread *td, int sig, int 
                                PROC_UNLOCK(p);
                                continue;
                        }
-                       err = p_cansignal(td, p, sig);
-                       if (err == 0) {
+                       if (p_cansignal(td, p, sig) == 0) {
+                               nfound++;
                                if (sig)
                                        pksignal(p, sig, ksi);
-                               ret = err;
                        }
-                       else if (ret == ESRCH)
-                               ret = err;
                        PROC_UNLOCK(p);
                }
                sx_sunlock(&allproc_lock);
@@ -1649,20 +1644,16 @@ killpg1(struct thread *td, int sig, int 
                                PROC_UNLOCK(p);
                                continue;
                        }
-                       err = p_cansignal(td, p, sig);
-                       if (err == 0) {
+                       if (p_cansignal(td, p, sig) == 0) {
+                               nfound++;
                                if (sig)
                                        pksignal(p, sig, ksi);
                        }
-                       if (err == 0)
-                               ret = err;
-                       else if (ret == ESRCH)
-                               ret = err;
                        PROC_UNLOCK(p);
                }
                PGRP_UNLOCK(pgrp);
        }
-       return (ret);
+       return (nfound ? 0 : ESRCH);
 }
 
 #ifndef _SYS_SYSPROTO_H_
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to