Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 06 Aug 2026 19:52:47 +0000
From:      Rick Macklem <rmacklem@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: ca0dcfd1a8ec - stable/14 - nfs_commonkrpc.c: Fix recovery that was broken by 4d80d4913e79
Message-ID:  <6a74e60f.3e3af.35ff135a@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/14 has been updated by rmacklem:

URL: https://cgit.FreeBSD.org/src/commit/?id=ca0dcfd1a8ecbd7f4f99b06adcb5d67c8742679c

commit ca0dcfd1a8ecbd7f4f99b06adcb5d67c8742679c
Author:     Rick Macklem <rmacklem@FreeBSD.org>
AuthorDate: 2026-08-03 23:57:38 +0000
Commit:     Rick Macklem <rmacklem@FreeBSD.org>
CommitDate: 2026-08-06 19:51:27 +0000

    nfs_commonkrpc.c: Fix recovery that was broken by 4d80d4913e79
    
    Commit 4d80d4913e79 added a check for nfsess_defunct already
    being set.  This was incorrect because, once set, nfsess_defunct
    remains set and an additional recovery might be needed.
    
    This patch reverts this part of 4d80d4913e79.
    
    PR:     297252
    
    (cherry picked from commit 5ab48fb9f7ac43fb1242a678312a02df5d4d5b53)
---
 sys/fs/nfs/nfs_commonkrpc.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sys/fs/nfs/nfs_commonkrpc.c b/sys/fs/nfs/nfs_commonkrpc.c
index 28f83f460245..e6c09c132a8a 100644
--- a/sys/fs/nfs/nfs_commonkrpc.c
+++ b/sys/fs/nfs/nfs_commonkrpc.c
@@ -1261,9 +1261,15 @@ tryagain:
 				}
 				sep = NFSMNT_MDSSESSION(nmp);
 				if (bcmp(sep->nfsess_sessionid,
-				    nd->nd_sessionid, NFSX_V4SESSIONID) == 0 &&
-				    sep->nfsess_defunct == 0) {
-					/* Initiate recovery. */
+				    nd->nd_sessionid, NFSX_V4SESSIONID) == 0) {
+					/*
+					 * Initiate recovery.  Even if
+					 * nfsess_defunct is already set,
+					 * another recovery may be needed.
+					 * NFSCLFLAGS_RECVRINPRG |
+					 * NFSCLFLAGS_RECOVER should avoid
+					 * recovery storms.
+					 */
 					sep->nfsess_defunct = 1;
 					NFSCL_DEBUG(1, "Marked defunct\n");
 					if (nmp->nm_clp != NULL &&


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a74e60f.3e3af.35ff135a>