From nobody Wed Jun 24 17:48:03 2026 X-Original-To: dev-commits-src-branches@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 4glqCm03VQz6jZ18 for ; Wed, 24 Jun 2026 17:48:04 +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 4glqCl4DnDz3bsR for ; Wed, 24 Jun 2026 17:48:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782323283; 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=xpoU+ivVuCaCkLlgtp4LI2qdOM5budW7NG5qk43u1fQ=; b=lRXIa2ozgpHvyH3nIVvvUu5+HjR6hWC/+SIlBL0Y/oEk+QK0zT/lEBfbAr8Z+uIgPl8C3M aCz0+O4aYQB/kS8+eZcEkm+3JChuiMPorpRYiceLHn/fLofg1j18Ve6zuHRKDQfvGDFqF8 sNzU+Ddn9sPPQF1aY8/K87YiW1sjFNRgJToNF9CNPbBBtTDs2d4ql4EzihPMh7OtP90DzS /noYBFWDozNLWC+n2iQjDvq0H7iZtjeHfLGSayt78oTTcKgTe6d28nnHUvldoVF3QlDBKG O9824f8qpNUtGKOOeyJp81jK+7yaZWvmYvSfiOLkxw4dJY8xd8WzCbxcCz+Fig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782323283; a=rsa-sha256; cv=none; b=qOJxcyBk226UHn9PlAXGLgjou7cjK7c/4mO/vExBpLZzl25UZc3oYqRx0HyHheKeOWSfck lOhsHFrU7R1on5L5gAIweqi5xcIpp29z/4/zp6EblVejGxwBBFPrpdBYA/hqje0LmK5l5s bZCNHwyPWwMIdFxfqnZNYloK3Gnc8Bfi9+K9gnk7H0fBn91qng4GuQoOnvDrYHfpjwk6w6 dM+TnZyXzFeWABE+p5bSKCNBhOnkaCcRQBxZLTYmipSV+LXffKx+HgG5qD2Vzg3D3uh1JA g0oSnBT8cV0qWv/TQzpjvj85EzqY3pnTN9iYVPQVucUQPrSsFNIyVdGE3a+ueg== 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=1782323283; 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=xpoU+ivVuCaCkLlgtp4LI2qdOM5budW7NG5qk43u1fQ=; b=FLFMJQFii/op1AKoUdSpaJwAWwKywzBcEEpgE6IfnkZL0wreFD9sfahRdM85s+2BLGODPr CDlbTmvTOgTAR2vJN6UK08fokYe0DSHmcL6315O5ulIpvkhB9iJFcsmV7XIeUKwbzdQ5nw /ieoioMTV1hEe4tEctXQuwegyIhObe/1CJlseQRe7NC4u2051qtMtDsCQCc3X0B5XGgfuY sJFVevtwApCgLbDwYo+ha6F5C9kYMu++jZno4NbhIhiDQ25eCoil5wihq+se/lShVMbjel GaFCgrSHvNTxrjaHH5bCEJMHqYJOD85FltLz6Y+O7EWP6BniaBEh7HyaQSB+Zw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4glqCl2q51zVDg for ; Wed, 24 Jun 2026 17:48:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37a39 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 24 Jun 2026 17:48:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jamie Gritton Subject: git: 315238df5323 - stable/15 - jail: call PR_METHOD_ATTACH again (with old jail) if the first call fails List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: jamie X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 315238df53233a35752146cf291a37049a4656a3 Auto-Submitted: auto-generated Date: Wed, 24 Jun 2026 17:48:03 +0000 Message-Id: <6a3c1853.37a39.43fa584b@gitrepo.freebsd.org> The branch stable/15 has been updated by jamie: URL: https://cgit.FreeBSD.org/src/commit/?id=315238df53233a35752146cf291a37049a4656a3 commit 315238df53233a35752146cf291a37049a4656a3 Author: Jamie Gritton AuthorDate: 2026-06-19 19:45:27 +0000 Commit: Jamie Gritton CommitDate: 2026-06-24 17:47:43 +0000 jail: call PR_METHOD_ATTACH again (with old jail) if the first call fails jail_attach lets modules do attachment-specific work by calling osd_jail_call(PR_METHOD_ATTACH). If one of the modules returns an error, the call needs to be repeated with the thread's current prison, so possible earlier modules and undo any changes they may have made. (cherry picked from commit e91e8ebefadcce9d57c8ff945ff70050cbbe1ce1) --- sys/kern/kern_jail.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 43acde461e40..72ccbdf77550 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -3024,10 +3024,8 @@ do_jail_attach(struct thread *td, struct prison *pr, int drflags) /* Let modules do whatever they need to prepare for attaching. */ error = osd_jail_call(pr, PR_METHOD_ATTACH, td); - if (error) { - prison_deref(pr, drflags); - return (error); - } + if (error) + goto e_revert_osd; sx_unlock(&allprison_lock); drflags &= ~(PD_LIST_SLOCKED | PD_LIST_XLOCKED); @@ -3093,8 +3091,10 @@ do_jail_attach(struct thread *td, struct prison *pr, int drflags) VOP_UNLOCK(pr->pr_root); e_revert_osd: /* Tell modules this thread is still in its old jail after all. */ - sx_slock(&allprison_lock); - drflags |= PD_LIST_SLOCKED; + if (!(drflags & (PD_LIST_SLOCKED | PD_LIST_XLOCKED))) { + sx_slock(&allprison_lock); + drflags |= PD_LIST_SLOCKED; + } (void)osd_jail_call(td->td_ucred->cr_prison, PR_METHOD_ATTACH, td); prison_deref(pr, drflags); return (error);