From nobody Mon Apr 27 16:12:07 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 4g47qq6f2Qz6bHCT for ; Mon, 27 Apr 2026 16:12:07 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g47qq1T8Lz3fMH for ; Mon, 27 Apr 2026 16:12:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777306327; 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=GZEpjTHnePqUhK4efwcgjg2QX3r+JSraNIPlvgfBKw8=; b=SmUxuUl/EmtieQq7Ztyqbx+rBwA01tpA4y+iPc+AHOK/q2feKhIpjCb9le49RvFOpcafih jvd9RCFYfnx3fLW7+9nT6Z+clhYXXsaGvPok2GsiYWC0FoUm3pyWM196c70+gsw0nupW2A 7bK2aRVsYxNoPUjcVJ+6ofxll1SVL2+z+bbJgkxx+swtIz56rVP3tEG9JgtR9eCTl5wicW OiXJ/6uJVBxOTAcYmKWSPEDDNrg0mU/GFlvTLCy0wPyU57l1n6Sd/TEMa0U9aW3NEGb9Fh SQNnrfNDOielznJ6pNYNvMc/MhanEp3uQGhjkO1C1GBZVRyXaRONpGa7V6zd6w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777306327; a=rsa-sha256; cv=none; b=Vu4lXUxT2WMT2BNhI3Vj3zfXJIKIkRKgWhGJUaUwiRPCo9ulChzwoB0OmbDlF/VXywsRR9 3yASN5PFW7UUXnO6hF6xPSP/waAj/6qfsNrZMFRcaV9ywbsuGL+WS4iUq/AMIp0e4RewVC snK37KKMni1993xbT9hPsxAQ8wsT/mKAtvO46oxh0hUvaIDyygZLcuEP18PKBNQntMsYo7 vDakGvB9q/Qj6HG6sdEqWQUxcilc07L2m6CF4FM84CxDr1UqjQSuOxfn/J9dvmZUtQkXGl K7P1dgu4TXUUj/gZ3DqMSFpQE3V0idWAeJf+y10OKUbQYzz9s8RM1vQ7SzvZAg== 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=1777306327; 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=GZEpjTHnePqUhK4efwcgjg2QX3r+JSraNIPlvgfBKw8=; b=V/5olYlJeEyZLCvsGWgk4iHm/wYttrpPUpB3QjXdXEPidYCAlUrdd3Rsk8JsIjQlM4sq0T LdTOywh+cae41nAPCmAGaXzplkpiRkUGwGLLVsGyMyjOxLWzkJ1dKfVYvw33Xbp/5serO5 ImztNzkoq6hKijIE3RTqOCeiVOtpUP7r+qsnkjR5K+N5pTg14ykSynmQ9SYMP+vWmSiytE 8R2MPQbgiMQ4BIZMDjrPeTG4VyoZN8b5ev2Rc77PRkqBCCB1aBZIVDaCJA+/0cOesoyw2t gYJ9kSDClDrJwRrHA8jHt+VvBaNTwrpLDclb7q/2s0WxU0kcW+O2Rip+uOZ20w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g47qq11KKz2L for ; Mon, 27 Apr 2026 16:12:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4459e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 27 Apr 2026 16:12:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gleb Smirnoff Subject: git: b5f4d40951c3 - stable/15 - kgss: de-virtualize kgss_gssd_handle 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b5f4d40951c302cf803d3b7c18a17f9bc0f1c3f0 Auto-Submitted: auto-generated Date: Mon, 27 Apr 2026 16:12:07 +0000 Message-Id: <69ef8ad7.4459e.7a6c90cc@gitrepo.freebsd.org> The branch stable/15 has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=b5f4d40951c302cf803d3b7c18a17f9bc0f1c3f0 commit b5f4d40951c302cf803d3b7c18a17f9bc0f1c3f0 Author: Gleb Smirnoff AuthorDate: 2026-04-25 02:55:55 +0000 Commit: Gleb Smirnoff CommitDate: 2026-04-27 16:11:51 +0000 kgss: de-virtualize kgss_gssd_handle The RPC client is more of a class rather than an instance. RPCs from different VNETs are served by the same client. This makes the kgss layer fully transparent to VIMAGE and not even required to be aware of it. It is responsibility of the rpcsec_gss module to have curvnet set on the calling thread when doing RPC calls via kgssapi. This change should enable proper operation of an NFS server with gssd(8) in a VIMAGE jail. PR: 294501 Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D56562 (cherry picked from commit 4602d45eb3b1d33e0ea0d97c4d18033af95d7fca) --- sys/kgssapi/gss_impl.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/sys/kgssapi/gss_impl.c b/sys/kgssapi/gss_impl.c index e7e0e5d00118..97b85a034071 100644 --- a/sys/kgssapi/gss_impl.c +++ b/sys/kgssapi/gss_impl.c @@ -28,7 +28,6 @@ */ #include -#include #include #include #include @@ -52,7 +51,7 @@ MALLOC_DEFINE(M_GSSAPI, "GSS-API", "GSS-API"); struct kgss_mech_list kgss_mechs; struct mtx kgss_gssd_lock; -VNET_DEFINE(CLIENT *, kgss_gssd_handle) = NULL; +CLIENT *kgss_gssd_handle; static int kgss_load(void) @@ -79,11 +78,9 @@ kgss_load(void) */ clnt_control(cl, CLSET_WAITCHAN, "gssd"); - CURVNET_SET_QUIET(TD_TO_VNET(curthread)); mtx_lock(&kgss_gssd_lock); - VNET(kgss_gssd_handle) = cl; + kgss_gssd_handle = cl; mtx_unlock(&kgss_gssd_lock); - CURVNET_RESTORE(); return (0); } @@ -93,9 +90,7 @@ static void kgss_unload(void) { - CURVNET_SET_QUIET(TD_TO_VNET(curthread)); - clnt_destroy(VNET(kgss_gssd_handle)); - CURVNET_RESTORE(); + clnt_destroy(kgss_gssd_handle); } #endif @@ -207,16 +202,9 @@ kgss_transfer_context(gss_ctx_id_t ctx, void *lctx) return (maj_stat); } - CURVNET_SET_QUIET(TD_TO_VNET(curthread)); - if (!VNET(kgss_gssd_handle)) { - CURVNET_RESTORE(); - return (GSS_S_FAILURE); - } - args.ctx = ctx->handle; bzero(&res, sizeof(res)); - stat = gssd_export_sec_context_1(&args, &res, VNET(kgss_gssd_handle)); - CURVNET_RESTORE(); + stat = gssd_export_sec_context_1(&args, &res, kgss_gssd_handle); if (stat != RPC_SUCCESS) { return (GSS_S_FAILURE); } @@ -250,13 +238,11 @@ kgss_gssd_client(void) { CLIENT *cl; - CURVNET_SET_QUIET(TD_TO_VNET(curthread)); mtx_lock(&kgss_gssd_lock); - cl = VNET(kgss_gssd_handle); + cl = kgss_gssd_handle; if (cl != NULL) CLNT_ACQUIRE(cl); mtx_unlock(&kgss_gssd_lock); - CURVNET_RESTORE(); return (cl); }