From owner-p4-projects Wed Mar 12 17:36:43 2003 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F20737B401; Wed, 12 Mar 2003 17:36:39 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A5D9F37B404 for ; Wed, 12 Mar 2003 17:36:38 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D546943FBF for ; Wed, 12 Mar 2003 17:36:37 -0800 (PST) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h2D1ab0U067331 for ; Wed, 12 Mar 2003 17:36:37 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h2D1abQr067328 for perforce@freebsd.org; Wed, 12 Mar 2003 17:36:37 -0800 (PST) Date: Wed, 12 Mar 2003 17:36:37 -0800 (PST) Message-Id: <200303130136.h2D1abQr067328@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 26802 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://perforce.freebsd.org/chv.cgi?CH=26802 Change 26802 by peter@peter_daintree on 2003/03/12 17:36:12 IFC @26797 (part 2) Affected files ... .. //depot/projects/hammer/sys/kern/kern_exit.c#9 integrate .. //depot/projects/hammer/sys/kern/kern_resource.c#7 integrate Differences ... ==== //depot/projects/hammer/sys/kern/kern_exit.c#9 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_exit.c 8.7 (Berkeley) 2/12/94 - * $FreeBSD: src/sys/kern/kern_exit.c,v 1.201 2003/03/12 11:10:04 tjr Exp $ + * $FreeBSD: src/sys/kern/kern_exit.c,v 1.202 2003/03/13 00:57:47 tjr Exp $ */ #include "opt_compat.h" @@ -658,15 +658,14 @@ return (0); } + /* + * Remove other references to this process to ensure + * we have an exclusive reference. + */ sx_xlock(&allproc_lock); LIST_REMOVE(p, p_list); /* off zombproc */ sx_xunlock(&allproc_lock); - LIST_REMOVE(p, p_sibling); - /* - * Remove other references to this process to ensure - * we have an exclusive reference. - */ leavepgrp(p); sx_xunlock(&proctree_lock); ==== //depot/projects/hammer/sys/kern/kern_resource.c#7 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_resource.c 8.5 (Berkeley) 1/21/94 - * $FreeBSD: src/sys/kern/kern_resource.c,v 1.120 2003/03/12 11:24:41 tjr Exp $ + * $FreeBSD: src/sys/kern/kern_resource.c,v 1.121 2003/03/13 00:54:53 tjr Exp $ */ #include "opt_compat.h" @@ -98,21 +98,17 @@ switch (uap->which) { case PRIO_PROCESS: - if (uap->who == 0) { - mtx_lock_spin(&sched_lock); + if (uap->who == 0) low = td->td_ksegrp->kg_nice; - mtx_unlock_spin(&sched_lock); - } else { + else { p = pfind(uap->who); if (p == NULL) break; if (p_cansee(td, p) == 0) { - mtx_lock_spin(&sched_lock); FOREACH_KSEGRP_IN_PROC(p, kg) { if (kg->kg_nice < low) low = kg->kg_nice; } - mtx_unlock_spin(&sched_lock); } PROC_UNLOCK(p); } @@ -136,12 +132,10 @@ LIST_FOREACH(p, &pg->pg_members, p_pglist) { PROC_LOCK(p); if (!p_cansee(td, p)) { - mtx_lock_spin(&sched_lock); FOREACH_KSEGRP_IN_PROC(p, kg) { if (kg->kg_nice < low) low = kg->kg_nice; } - mtx_unlock_spin(&sched_lock); } PROC_UNLOCK(p); } @@ -157,12 +151,10 @@ PROC_LOCK(p); if (!p_cansee(td, p) && p->p_ucred->cr_uid == uap->who) { - mtx_lock_spin(&sched_lock); FOREACH_KSEGRP_IN_PROC(p, kg) { if (kg->kg_nice < low) low = kg->kg_nice; } - mtx_unlock_spin(&sched_lock); } PROC_UNLOCK(p); } @@ -297,19 +289,15 @@ * Only allow nicing if to more than the lowest nice. * e.g. nices of 4,3,2 allow nice to 3 but not 1 */ - mtx_lock_spin(&sched_lock); FOREACH_KSEGRP_IN_PROC(p, kg) { if (kg->kg_nice < low) low = kg->kg_nice; } - if (n < low && suser(td)) { - mtx_unlock_spin(&sched_lock); + if (n < low && suser(td)) return (EACCES); - } FOREACH_KSEGRP_IN_PROC(p, kg) { sched_nice(kg, n); } - mtx_unlock_spin(&sched_lock); return (0); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message