From nobody Sun Oct 04 20:31:33 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 4hyZ1K75Zbz6gV2S for ; Sun, 04 Oct 2026 20:31:33 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hyZ1K6MZ1z4TLh for ; Sun, 04 Oct 2026 20:31:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791145893; 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=yzdktogxnjOAI82IG+CWo/sEy7P4l6cNK29JXKi2Rtc=; b=h4cp1jnPH1dut6Pg7hGm5JNyiIuNU0xLMAW7en6OjTA7i1xXEN78sIkxxPsyc1EyuWD/0H okoZLUfMgwPdeflIzxfGpKxkJzowdHWpQzYNl79VJGpHZpChvBd7DfoUqABbcTe3+h0zpl qfc2c8bGv5THQxg2KjJFlsjM3NpR1EqSoCRHuKWkjAHRjb1MKldXjlmB1/5rs51wP3gv5l mlXA+rjvZ1AC7Cb6vkem7FQmDO11MOqpcCJkGfypgCv8Ok+jJnoLCNitpIJG5qHYS8FXGu hjXwJHClZUaMvAvpHHy4Js5tMUWGLuPMQ0zh3K1FaGHXlMwfU8Dikbssnw1vJg== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791145893; b=hcdi3eEwglxMivJ645zuDOWzsEA0Wq3zNMsuy7elyROmz0fZMnibnANWWHyOifcyMiBetP 8/jXktIFPCx5I603zMi5hs7Vy5YuLX6MikeXbNknz7aUl4zkcSgACLe080NJ4e26F0LsFM /ZgmKDJ9Ssf+h+9tZAaMl+ZnEIgBBcLxIz6nowVXNJEaKwZZbd0QlZq6G+nTJBaGclheY3 NqGkA4xzanDXnZIF5UbSK1X6cajPxyt0CS+rWC5c/YVnnOfSug1JBEO4Z5rCwyc8/qsDS5 5413LMW3dmEcCCVevVAdsVV8lKW9dADDxGwboLp0G5fcJGDFuGAe2ABBnbNXxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791145893; 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=yzdktogxnjOAI82IG+CWo/sEy7P4l6cNK29JXKi2Rtc=; b=c5RwnlGoDOAYbrFIkKENTxeEuTD4XS3jq0ADJ48s9t7k5SR/R0d9+zrvMKSw2Z5t/lxAGl xq6UE2iknpCkw0FRYaWJyEW2zyhaCrifgdJEgEy3QQQKtIh2jhLse+/YK0LukNoZU8fqFp d3Z/JbJnPNCMOl0yzSRIXG/uKeIoZ+7RB37sTVt9MAlwjK6HakDoPdGhFrgkZNqQ9xdbdU rMz2tQ6nFGjTKCSlZDEoe/rzrzVaXA+27+UHNpEQGg3C9HaJtj/YaKZ3roKEVk+iJz5Xvy CyZSxymHorCjPaYb5zg8fTp3rFeAU2CfAVjI+tFSiTMvbAtU408eWfyMvBl9wg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hyZ1K5PWGzq1D for ; Sun, 04 Oct 2026 20:31:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4356a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 04 Oct 2026 20:31:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: 81a6514689ce - main - clnt_vc.c: Fix handling of backchannel xprt 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 81a6514689cefdaa5c92b5539ae885ec8c6b3336 Auto-Submitted: auto-generated Date: Sun, 04 Oct 2026 20:31:33 +0000 Message-Id: <6ac2b7a5.4356a.711859ba@gitrepo.freebsd.org> The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=81a6514689cefdaa5c92b5539ae885ec8c6b3336 commit 81a6514689cefdaa5c92b5539ae885ec8c6b3336 Author: Rick Macklem AuthorDate: 2026-10-04 20:29:43 +0000 Commit: Rick Macklem CommitDate: 2026-10-04 20:29:43 +0000 clnt_vc.c: Fix handling of backchannel xprt When clnt_vc_destroy() is called, it might not be the current connection. Without this patch, if it is not the current connection, xp_p2 is set NULL and xprt is released when it should not be released. This patch adds a check for "current connection" to fix the problem. Found during testing to the client RDMA code, but could happen for TCP as well. MFC after: 1 week --- sys/rpc/clnt_vc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/rpc/clnt_vc.c b/sys/rpc/clnt_vc.c index e395cd27ccaa..9b12212f9a2e 100644 --- a/sys/rpc/clnt_vc.c +++ b/sys/rpc/clnt_vc.c @@ -856,6 +856,7 @@ clnt_vc_destroy(CLIENT *cl) struct socket *so; SVCXPRT *xprt; uint32_t reterr; + bool_t rlse; clnt_vc_close(cl); @@ -864,11 +865,16 @@ clnt_vc_destroy(CLIENT *cl) ct->ct_backchannelxprt = NULL; if (xprt != NULL) { mtx_unlock(&ct->ct_lock); /* To avoid a LOR. */ + rlse = FALSE; sx_xlock(&xprt->xp_lock); mtx_lock(&ct->ct_lock); - xprt->xp_p2 = NULL; + if (xprt->xp_p2 == ct) { + xprt->xp_p2 = NULL; + rlse = TRUE; + } sx_xunlock(&xprt->xp_lock); - SVC_RELEASE(xprt); + if (rlse) + SVC_RELEASE(xprt); } /* Wait for the upcall kthread to terminate. */