From owner-p4-projects@FreeBSD.ORG Sun Dec 19 11:55:56 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52C4C106566B; Sun, 19 Dec 2010 11:55:56 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14CF01065670 for ; Sun, 19 Dec 2010 11:55:56 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 01D838FC0A for ; Sun, 19 Dec 2010 11:55:56 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oBJBttr4007351 for ; Sun, 19 Dec 2010 11:55:55 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oBJBttxd007348 for perforce@freebsd.org; Sun, 19 Dec 2010 11:55:55 GMT (envelope-from trasz@freebsd.org) Date: Sun, 19 Dec 2010 11:55:55 GMT Message-Id: <201012191155.oBJBttxd007348@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 187053 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Dec 2010 11:55:56 -0000 http://p4web.freebsd.org/@@187053?ac=10 Change 187053 by trasz@trasz_victim on 2010/12/19 11:55:55 Fix rusage_proc_fork() failure handling. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#29 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#29 (text+ko) ==== @@ -772,6 +772,21 @@ knlist_init_mtx(&newproc->p_klist, &newproc->p_mtx); STAILQ_INIT(&newproc->p_ktr); + /* + * XXX: This is ugly; when we copy resource usage, we need to bump + * per-cred resource counters. + */ + newproc->p_ucred = p1->p_ucred; + + /* + * Initialize resource container for the child process. + */ + error = container_proc_fork(p1, newproc); + if (error != 0) { + error = EAGAIN; + goto fail1; + } + /* We have to lock the process tree while we look for a pid. */ sx_slock(&proctree_lock); @@ -790,20 +805,6 @@ } /* - * XXX: This is ugly; when we copy resource usage, we need to bump - * per-cred resource counters. - */ - newproc->p_ucred = p1->p_ucred; - - /* - * Initialize resource container for the child process. - */ - error = container_proc_fork(p1, newproc); - if (error != 0) { - error = EAGAIN; - goto fail; - } - /* * After fork, there is exactly one thread running. */ error = rusage_set(newproc, RUSAGE_NTHR, 1);