git: f2307ecd36d6 - stable/15 - kern_fork.c: add kern.pdfork_implicit_nowaitpid sysctl
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 11 Sep 2026 01:10:26 UTC
The branch stable/15 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=f2307ecd36d6b8c5261655d2dd49b330eadef458
commit f2307ecd36d6b8c5261655d2dd49b330eadef458
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-09-03 17:56:13 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-09-11 01:10:04 +0000
kern_fork.c: add kern.pdfork_implicit_nowaitpid sysctl
(cherry picked from commit 24d3cbaaf5ad45b53e15d4729961fc8a8b385562)
---
sys/kern/kern_fork.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index ea47e8168257..2140a8b2afa1 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -91,6 +91,11 @@ dtrace_fork_func_t dtrace_fasttrap_fork;
SDT_PROVIDER_DECLARE(proc);
SDT_PROBE_DEFINE3(proc, , , create, "struct proc *", "struct proc *", "int");
+static bool pdfork_implicit_nowaitpid;
+SYSCTL_BOOL(_kern, OID_AUTO, pdfork_implicit_nowaitpid, CTLFLAG_RWTUN,
+ &pdfork_implicit_nowaitpid, 0,
+ "PD_NOWAITPID is assumed to be always set");
+
#ifndef _SYS_SYSPROTO_H_
struct fork_args {
int dummy;
@@ -561,7 +566,8 @@ do_fork(struct thread *td, struct fork_req *fr, struct proc *p2, struct thread *
P2_LOGSIGEXIT_ENABLE);
if ((fr->fr_flags & RFPROCDESC) != 0) {
p2->p_zombieref = PZOMBIEREF_PROCDESC;
- if ((fr->fr_pd_flags & PD_NOWAITPID) == 0 &&
+ if (((fr->fr_pd_flags & PD_NOWAITPID) == 0 &&
+ !pdfork_implicit_nowaitpid) &&
(fr->fr_flags & RFNOWAIT) == 0)
p2->p_zombieref |= (PZOMBIEREF_PARENT |
PZOMBIEREF_NEEDPARENT);