From nobody Tue Jul 7 01:57:11 2026 X-Original-To: dev-commits-src-all@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 4gvPVc3XNZz6kd1k 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 4gvPVb7165z3V0x 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=1783389432; 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=LVgXnBTPQG+HzUNPrwGG5sTCh7DTF6JvuOI6kZUmEKdT9Q2LLjqA289r2yf6VBwO7nJdt2 byUftwh7pz28u6oJeMe1AkT1K3QlWjzK2vRNhPAsu+ICXqLM8BklvKuWfLCAvAtzy7X7yT Ub1JC44Qz66fIxM+1bRfyy70m+D5ByKi0l1DJoEMwsTNzqypdKw0hUPCp4iTHrtl98Dp+R RZF8Zpoj9uT3v8ndDdooQz92cSxtVZfoSzlAH3W5oMHsf72dLoxZ6rnsTuw2EBZhcTPeBQ RuPDondc4VLBQvy+wIQ1NV0EdUBHL4fKDXIHiXwpRVk8laxPz0FOGq0LTpJYdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783389432; a=rsa-sha256; cv=none; b=uKAzGr1N0mi+a4BSN1/50Dvp2i1zcSorEg99+e8p5xoHxv6KUDmkVDpeK7sc2o428r8p09 TbrF9fypT41gfUBknKHkFqppo0sA9CxIgS4fjQDR+LNnIX5cd0WhzL2s5x0OPgJ8dkrla2 /PFrLboisBVDGx2NHvqxv6srsOSJlnFLYwAzCWvVnR6QjokrqzdcQQ0roPx7WAY2Mg4K1p 5AvgkdIRI8M5DXJhTkHnuYeM2BLVV5jmEapejPR83NPxIfXhUG9DUtxGQxvPniyMF+iNFh ni/EYMMbwwobAisMVCifj5AN+N/p/04dZiDnAZg9wFZfjt1H2FRCCe+R1h4hlw== 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=1783389432; 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=QW9l0SOvVuyKXXsnF/4UBlyK5hZQYg0mCNvpIgEQ3+S7SuPhDTN3D5ViY3B1Pg3jKD3kDx xwT7hHhOOmt0+5R/slkwx4eUdLLytYM56a+RUGgs0wmOeK+t44tULSPu8Tvmi9WCTF7e+X EeaAVdqDsXpBeaQtrWS6iCo9zehMqm+cAc+eAZnxkW5WZilzLWNKX7V05jS2x9g24tFIiL /vdgXYKcn9vjxhGR22rduWzERigTRpYh9S/6pVdJW3MPenhc33FmWnhoBz5LFnqBXGT7zk jQBSukx2JJm4rgiQHH4xLs1BMHFA2fa38TybrfXj7bEDTcrQdP9HoSzPp3zzXg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gvPVb5VyLzBv 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 all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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; } /*