git: ca0dcfd1a8ec - stable/14 - nfs_commonkrpc.c: Fix recovery that was broken by 4d80d4913e79
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 06 Aug 2026 19:52:47 UTC
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 &&