git: 037232c20015 - stable/15 - nfs_commonkrpc.c: Fix recovery that was broken by 4d80d4913e79
Rick Macklem <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.src |
|---|---|
| Message-ID | <6a74e499.3b861.4c11cb20__34967.4218961567$1786045607$gmane$org@gitrepo.freebsd.org> |
The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=037232c2001528995d75556c8e2007c686e50134 commit 037232c2001528995d75556c8e2007c686e50134 Author: Rick Macklem <[email protected]> AuthorDate: 2026-08-03 23:57:38 +0000 Commit: Rick Macklem <[email protected]> CommitDate: 2026-08-06 19:45:02 +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 dd189a4aa909..705e65d81d41 100644 --- a/sys/fs/nfs/nfs_commonkrpc.c +++ b/sys/fs/nfs/nfs_commonkrpc.c @@ -1279,9 +1279,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 &&