svn commit: r241854 - head/sys/kern

Eitan Adler eadler at FreeBSD.org
Mon Oct 22 03:36:45 UTC 2012


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_


More information about the svn-src-all mailing list