From nobody Tue Jul 7 01:57:11 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gvPVc07Lvz6kd3p for ; Tue, 07 Jul 2026 01:57:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gvPVb6YNJz3V0w for ; Tue, 07 Jul 2026 01:57:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783389431; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HBchdM2qa//M4LfUlpNMebCGVV+Ma6Dt9PhEEUluRTQ=; b=YroA+A1q9eP5onryaxMoaBcu1cm07JxEjE4HiWjkPGWmb5i0ucVEckikMXUuPvIq9u5g5x OJG5RjoNFjhOijWye+eWCKigSVQHrEG8vASpZCIXHoPeGIaoEtXgCHN+iwJphlfFDm2QOR SO4DiK7jdCyfrGQzWdnxjX3fO5LgwGQAgSLnq4V0hqY2kiR/uZuMzKsHG9rhaUJCqth07c nKKJnhhHlowsObzs/90BIozH40Wl4ivTdafJpZ6xJOWgJQoP9JkBG+tNxtGTRAelIhJyD/ M0NEbpNTD71zJrUEf0ciEBtGJFgPm3QRZtW357RQUHJ0QfL+4aaswO5qOn2vIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783389431; a=rsa-sha256; cv=none; b=pRYbRsxnJkkLqjBA6xdOl1rNVWBMAgbbF6skLqu0GUGbYo6OQnSU6YA9/7MqtCOUoQMNO7 txZSTl7MpmnAXv4IfqzvDp25/l0JOPEDl04NNHhTaW16bvXmCeYduRhXWFqrbtlMqffCBV vZru5JmCeOCx0Y9hEfiUQ/1QfKpIjgES8M6KoFQG2omjBQ9FVIKF7HFlgQvkD2PCYRElpj IgEDIcM3uBGXgW+Mhhi/+S6xVj9FzFfSqrpInVL6Nt3x7wrkIRUQzK7PGz7wGF5OWwcrYj s79FYqVeyvsJ/2q3+oa1uP+zJDThvhmGWU893LZ66tJrxCgVY+tQ54I8FXwEPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783389431; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HBchdM2qa//M4LfUlpNMebCGVV+Ma6Dt9PhEEUluRTQ=; b=Q/aLhs1ReEopBcjHLDK2siZTEBv24VXJN2nd9sPuJvQXt1dYz+/zWb5wUz1NYePBM0LwG5 vbWfwnneEDzXEWx9ADOG2jG/3JO5rClVb5GZ9aY8pzpM7ZEx1IQfGJJ6TbdJvdoIMzwRID NEzyCu8vIJUAEXXHhldJw6CL+Z1Nu3O4MyjQCfmkewd7+eRm6oduJwSVcqC8mB6NIIbaj1 MFOI1bWL+47A1fvI9FYQzigppG3xIa4+xIT5SPKyOS5PRDRMw9iar7xQaY4Te2nhqsQTqG y8ezbQnMfPNlzeE96UlNZVWpYEnIHG8CWypDM1GVvrdJMs6laOOc1SH0dgk/rA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gvPVb5Tckz1S2H for ; Tue, 07 Jul 2026 01:57:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f64e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 07 Jul 2026 01:57:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 599d021224f2 - main - sys_procdesc: extract procdesc_alloc() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 599d021224f2af3fc0befdbd6b804a328dd556f9 Auto-Submitted: auto-generated Date: Tue, 07 Jul 2026 01:57:11 +0000 Message-Id: <6a4c5cf7.3f64e.68e9e4e4@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=599d021224f2af3fc0befdbd6b804a328dd556f9 commit 599d021224f2af3fc0befdbd6b804a328dd556f9 Author: Konstantin Belousov AuthorDate: 2026-05-20 02:02:54 +0000 Commit: Konstantin Belousov CommitDate: 2026-07-07 01:22:20 +0000 sys_procdesc: extract procdesc_alloc() Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D57124 --- sys/kern/sys_procdesc.c | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index 377132af13c3..e6d8ac403dfb 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -201,23 +201,15 @@ sys_pdgetpid(struct thread *td, struct pdgetpid_args *uap) return (error); } -/* - * When a new process is forked by pdfork(), a file descriptor is allocated - * by the fork code first, then the process is forked, and then we get a - * chance to set up the process descriptor. Failure is not permitted at this - * point, so procdesc_new() must succeed. - */ -void -procdesc_new(struct proc *p, int flags) +static struct procdesc * +procdesc_alloc(int flags) { struct procdesc *pd; pd = malloc(sizeof(*pd), M_PROCDESC, M_WAITOK | M_ZERO); - pd->pd_proc = p; - pd->pd_pid = p->p_pid; - p->p_procdesc = pd; pd->pd_flags = 0; - if (flags & PD_DAEMON) + pd->pd_pid = -1; + if ((flags & PD_DAEMON) != 0) pd->pd_flags |= PDF_DAEMON; PROCDESC_LOCK_INIT(pd); knlist_init_mtx(&pd->pd_selinfo.si_note, &pd->pd_lock); @@ -227,6 +219,26 @@ procdesc_new(struct proc *p, int flags) * struct file, and the other from their struct proc. */ refcount_init(&pd->pd_refcount, 2); + + return (pd); +} + +/* + * When a new process is forked by pdfork(), a file descriptor is allocated + * by the fork code first, then the process is forked, and then we get a + * chance to set up the process descriptor. Failure is not permitted at this + * point, so procdesc_new() must succeed. + */ +void +procdesc_new(struct proc *p, int flags) +{ + struct procdesc *pd; + + pd = procdesc_alloc(flags); + pd->pd_proc = p; + pd->pd_pid = p->p_pid; + MPASS(p->p_procdesc == NULL); + p->p_procdesc = pd; } /*