From nobody Sun Nov 01 23:35:16 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 4jHrmN2sdDz6y9h4 for ; Sun, 01 Nov 2026 23:35: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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jHrmN2CKmz3DRw for ; Sun, 01 Nov 2026 23:35:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793576116; 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=eQ+GvC9CrS9KcsetFvMaaxHI979AhsWThUVobumH/iU=; b=xX06ra5trM6G33NSe6hUCg1BzMw8oBSq+EMxtzoK5QupgT2Dv3KjxmC3a3FhmPuavELjxi WeJF+Emzvx8AKtHR4YDpVAnnln8sBAoQIa8BfPQGXiIvEWuEctWq5LyeqD4bGlyvBxUnHz BEe2cLsnVdVhrtO6VxPxNZAz6DLFnKgEKPkzbbTD1kAt2qDVF/4F110xs23L3PdQRhm+Id zBb8cDnYgwP1yOQHJvVhHhCO9/U5mnW6nuX1GbZznouL34kHLq2ZcvI1GTizuNpubyVpDP JTDntS27uqawOjjsNQZGJvRf5mGCH+DjLTtt1EGFcdmsakVNay47GXhCsMM/8g== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793576116; b=jiT5EI/rM6U7lYNV2fijSPoB4EmyZTTnF60rZNYoXRIV3AQVjdpqkBjVEocGUwtrqZNGuK aLTygoV7NAjqLfn9oZoRPtCd0oRknXBUV42Lf6MI74ipL6ALOOAFIHrQw13h9tFHq6qxGZ AnbkcuGqTgvtrBqi1YBd438L98FJ9osp+iYgWGf78nztbuOtRBY7uZbPAKYB5hJ4tXsH5E 5+UnzN30AN5i8ROKmG6mWUtU2iRhHJwRukwXIKoz1Q62m4rdaHmGfMQ6Yq3KTQv0ATVF8r bW38X8W+g6xeZtrMl2a0NTKhNAQgnoiu1BD67K6Luh95mbqpqx0xAaHFzZ6USQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793576116; 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=eQ+GvC9CrS9KcsetFvMaaxHI979AhsWThUVobumH/iU=; b=BFU8LGMp3MeuVX3B7VMq9pHHKs8XyriA1GjmLuRKsLXxsPXbh5mbtTI9N5W51z0188hn/n xyCfJ3EjprKpGR2uAUOCyXRxkqDoe7GzrT13nNjmGfp0iknzxzAws2BrtFBikTsns/h5vl 7fSRS1ZBUwE1IVWc8SoFO1FAs3UVB4Mh7gVqaK6DGh3y+en3uumMzRUrWICgqwMUvcoyE/ adRpbJeyLl/tpioVesOdPmHPbRQiharGT4qRNjRHHbOUXQxNgW18+yqTy2f48qt3HxNzfS MfhWmCw0w+w44Qkc6SnGbhrKT5CLP1Sa1iRWjT+Y1vYmCMJPJyc6z7DlrJhI8A== 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 4jHrmN1shWzKJB for ; Sun, 01 Nov 2026 23:35:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bb54 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 01 Nov 2026 23:35:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Cochard Subject: git: 7a0021a0988f - main - nfscl: Do not delay recovery for a stale ClientID List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: Commit messages for the main branch of the src repository 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: olivier X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7a0021a0988fa39faee847953dd8df6bc9ff56b9 Auto-Submitted: auto-generated Date: Sun, 01 Nov 2026 23:35:16 +0000 Message-Id: <6ae7ccb4.1bb54.70a4ef14@gitrepo.freebsd.org> The branch main has been updated by olivier: URL: https://cgit.FreeBSD.org/src/commit/?id=7a0021a0988fa39faee847953dd8df6bc9ff56b9 commit 7a0021a0988fa39faee847953dd8df6bc9ff56b9 Author: Olivier Cochard AuthorDate: 2026-11-01 23:24:45 +0000 Commit: Olivier Cochard CommitDate: 2026-11-01 23:29:58 +0000 nfscl: Do not delay recovery for a stale ClientID When a CREATE_SESSION with the extant ClientID failed with NFS4ERR_STALE_CLIENTID within nfsc_renew of the previous full recovery, nfsrpc_setclient() returned EIO and the mount did no I/O until that window expired (about 45s). The server has discarded the ClientID, so waiting cannot help; RFC 8881 Section 8.4.2 requires a new ClientID (EXCHANGE_ID) and a state reclaim. AWS EFS discards both the session and the ClientID of clients whose lease is current whenever it resets a connection, which makes this path common there. PR: 299221 Approved by: rmacklem@ Sponsored by: Netflix --- sys/fs/nfsclient/nfs_clrpcops.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c index 464481eca0e2..1f6227e0831a 100644 --- a/sys/fs/nfsclient/nfs_clrpcops.c +++ b/sys/fs/nfsclient/nfs_clrpcops.c @@ -1069,12 +1069,15 @@ nfsrpc_setclient(struct nfsmount *nmp, struct nfsclclient *clp, int reclaim, nfscl_freenfsclds(dsp); dsp = NULL; /* - * If *retokp is true, return any error other - * than NFSERR_STALECLIENTID, + * A stale ClientID needs a full recovery. + * Otherwise, if *retokp is true, return any + * error other than NFSERR_STALECLIENTID, * NFSERR_BADSESSION or NFSERR_STALEDONTRECOVER * so that nfscl_recover() will not loop. */ - if (*retokp) + if (error == NFSERR_STALECLIENTID) + *retokp = false; + else if (*retokp) return (NFSERR_IO); } else *retokp = true;