From nobody Sat Apr 25 02:56:15 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 4g2ZGS1Vzrz6bnXg for ; Sat, 25 Apr 2026 02:56:16 +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 4g2ZGR2TNLz49b5 for ; Sat, 25 Apr 2026 02:56:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777085775; 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=zvu3bRNatmb9f+YGjTxuv3jxG+QT8/bScMllFvr9PRI=; b=khJkQBs7aUJxCP7bYhsUgyTKMoxWT6p/19p8ghNqgRsBnj86RgOaC6kCNuF0H0Hy0fawHL oDwQv6xWEoBUVYEY0A/Nd8ZtPqMZRB747SwuUNbI/27y/6RMFxeX1YMYZeihWH+2z5wirx /zQKS1tUQ85KqhRX7WBD71NUZNVbBz3lM9Hwue9WA4fxbc66EU+BE8TcwT4Lqx5XYs6DiW XIeMcsxHtxbN3PyDRSdPM1PXQkf7pKaWCv4arIYIAxJdbNBaQKFvltpuq193ZLBMfDZuI0 6+dSdsoa/zHVN8LCXbXp3r3Xs881erp1dpoWGE84wvMghUAUy1iwqDP5D0QExQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777085775; a=rsa-sha256; cv=none; b=Ped1gadGUhyceGoqEJ4Wxdyx6fo2GzvL4Z29266x7faleBVp4/JiFj7kQuTK++UpfD5wk1 anJ6z0ONAcs6OX/I5RC9cQMacAPzWnCsilhvBNGPCwzH3aYKo+TShYmKqkf27/66dghDNs vMxHuHKK+WMNHD71VHdV2Txm9Rl8EvraeaFrBnEcqueTGAkZORiMPSWtoVz4D68vdADaIr ByKWGxzJRqFp7cO3JMT6Wzgbzx/nzmvvuJZtcpcVnGL8LN6Caq8L6xPLvOqCH4apOLrwow uu01EA7bSGeiZS4oiTYWOfy70Fd8DRZ3SYW2UiiZIwjJufiOQEgQSI4mdvoH2g== 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=1777085775; 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=zvu3bRNatmb9f+YGjTxuv3jxG+QT8/bScMllFvr9PRI=; b=O5WG+RmOrjAapMe1dvSUbqv6jAc5nPHTkv1IMyjgRWnJEZlChxJwRUENNQ1ad8o6xNkJ6W TuLmhMX+a+vXdJPdDkhGCSq9HVBJCYbZPEKPjlbFslJBcM59StbMCpciqR85s1Uzv2VFs/ CBsIm+5LjXymqbN0TqX9W9AIDanbNDlxk1R4ySCQMz8SpxDT16/c/pW0HWEpcmVftU8i4n h6G7qfVsGUTwj5ATDe/khspemcBmGykIMGDK5LWB4GsUB+v7UQu522MQMhzzhox0DVrdsx /ytSnt+EHs8UIdUWnddq/r6tP7u1ruZnRIwmjQnqFe++hprGCY6GnoHfk+ppBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g2ZGR07BfzrF for ; Sat, 25 Apr 2026 02:56:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 343f5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 25 Apr 2026 02:56:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 4602d45eb3b1 - main - 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/main X-Git-Reftype: branch X-Git-Commit: 4602d45eb3b1d33e0ea0d97c4d18033af95d7fca Auto-Submitted: auto-generated Date: Sat, 25 Apr 2026 02:56:15 +0000 Message-Id: <69ec2d4f.343f5.71d3f46a@gitrepo.freebsd.org> The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=4602d45eb3b1d33e0ea0d97c4d18033af95d7fca commit 4602d45eb3b1d33e0ea0d97c4d18033af95d7fca Author: Gleb Smirnoff AuthorDate: 2026-04-25 02:55:55 +0000 Commit: Gleb Smirnoff CommitDate: 2026-04-25 02:55:55 +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 --- 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); }