From nobody Fri Jun 19 19:45:50 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 4ghp3z2ncMz6ghm0 for ; Fri, 19 Jun 2026 19:45:51 +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 4ghp3z23g6z3sq6 for ; Fri, 19 Jun 2026 19:45:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781898351; 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=ScBpSZq5XDROPypKbOueqZS5TvsyzYFlj7rO6KQZ9HY=; b=mDiWmPHDY3pOEQgjHJ9s/Wd23KG+Ha7vEMUcnO2bOJkVR0AgU/x1Vm+wo5bpy/4wv7ovur 9Ha8q3mPFm3xqA1pXdRwNB9LLlipkB+Vr0hOay7XVP5e8Ac4D6ALql3JNnqjr4F3A74RS6 k9FtBdXq2YEobsetnkVRWlAzUwbflujHQhBtvKk9kt/YUdf04+8AxQ7JRNgNYN9uM+nxc2 km3qm6wdF/9LXe7HLw+bqxZgWUov7RFw+fNTpiWHQy9aTt5ONrBqAUIWdRQsvsjhy282ni vC7VtdU8/XtGkOIbV00juFfClypTDLMgTbI9nzUDi9ohYhpPBpdxBGg6A+Jr7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1781898351; a=rsa-sha256; cv=none; b=J5JrQGy5HCoy2XL2QMf1knGcVaZMwSVCjXvOtE9LQav8CZFyaTjUBDrUn2Csr+2YLh8DMx ea3YcLP1UWZAOeYfPQbZ/YxwK6uxPslDlHeBSpcGuWFPF+X0XS7T9Y4cbQmaCuhy7Lb8Q3 i3XHdiUxS5kPY7M75KPWs+vWi+tEoe95y1WH2fOSBN11QDibuR6d7rYIP9MJyUXsKBFGOU OrRl02S8hofuqxTsdJcCIRjlsXnc1nt5SXNi2w52pAd+5Bs96y63E7m4LMY2Exbi6q5sbV Q3rtOF/6LoDsIL5d6pB04GQSPMy3DQPRrpFH1hKt5Ph3GQpqikIEkoRZCWcoOA== 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=1781898351; 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=ScBpSZq5XDROPypKbOueqZS5TvsyzYFlj7rO6KQZ9HY=; b=H1+qLoosRm4SZNzgOKjKm+XdPUiZ2x7UKfFW28YsBheeUSJfnbRF1/K9TWYF53XpUcBUiG XNNgs85DXRZqgrWEnqA71MYW/YaQa1PPuu9E9Xl3BLiyaoK5lsraPnD8arIz03IptEPZS2 qXX9IVoFqFY4UrYpPGkNjVdOeRUWTXMpd37P1p+ujOIK14s2UExXo9b7N1kaKGqfHhLYPG OSdMLMqRmLFZ/+4Z016JayWfxKXs5Hq4k2G7t5D8AmE9yW32IREdWbG6ta/Nk4bl8rtfZI bNiVtJuz3BAjF01bi76cNdOkkgHRf3fdi31oWN3d9CDAZvT2JcOTuRGwiEmoHQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4ghp3z0fRkzyMN for ; Fri, 19 Jun 2026 19:45:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37660 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 19 Jun 2026 19:45:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jamie Gritton Subject: git: e91e8ebefadc - main - jail: call PR_METHOD_ATTACH again (with old jail) if the first call fails 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: jamie X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e91e8ebefadcce9d57c8ff945ff70050cbbe1ce1 Auto-Submitted: auto-generated Date: Fri, 19 Jun 2026 19:45:50 +0000 Message-Id: <6a359c6e.37660.6acee9df@gitrepo.freebsd.org> The branch main has been updated by jamie: URL: https://cgit.FreeBSD.org/src/commit/?id=e91e8ebefadcce9d57c8ff945ff70050cbbe1ce1 commit e91e8ebefadcce9d57c8ff945ff70050cbbe1ce1 Author: Jamie Gritton AuthorDate: 2026-06-19 19:45:27 +0000 Commit: Jamie Gritton CommitDate: 2026-06-19 19:45:27 +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. MFC after: 5 days --- 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 a8d44012db0f..9e6d72ac7157 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -3160,10 +3160,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); @@ -3236,8 +3234,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);