git: 70efcaffa180 - stable/13 - nfscl: Add a diagnostic printf() for a "should never happen" case

From: Rick Macklem <rmacklem_at_FreeBSD.org>
Date: Fri, 10 Jun 2022 22:14:01 UTC
The branch stable/13 has been updated by rmacklem:

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

commit 70efcaffa180d5b00c7b8eaca7a271693933a38c
Author:     Rick Macklem <rmacklem@FreeBSD.org>
AuthorDate: 2022-05-27 21:32:46 +0000
Commit:     Rick Macklem <rmacklem@FreeBSD.org>
CommitDate: 2022-06-10 22:12:50 +0000

    nfscl: Add a diagnostic printf() for a "should never happen" case
    
    When a NFSv4.1/4.2 session to the NFS server (not a pNFS DS) is
    replaced, the old session should always be marked defunct by
    nfsess_defunct being set non-zero.
    
    However, the hang reported by the PR suggests that this might
    be the case.
    
    This patch adds a printf() to indicate this has somehow happened.
    
    PR:     260011
    
    (cherry picked from commit a7bb120f8b8735bc4c417b3c8fc2308c3d2964aa)
---
 sys/fs/nfsclient/nfs_clrpcops.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index dc0b92db97bc..eac6c777324a 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -1060,8 +1060,12 @@ nfsrpc_setclient(struct nfsmount *nmp, struct nfsclclient *clp, int reclaim,
 			 * in-progress RPCs.
 			 */
 			tsep = NULL;
-			if (TAILQ_FIRST(&nmp->nm_sess) != NULL)
+			if (TAILQ_FIRST(&nmp->nm_sess) != NULL) {
 				tsep = NFSMNT_MDSSESSION(nmp);
+				if (tsep->nfsess_defunct == 0)
+					printf("nfsrpc_setclient: "
+					    "nfsess_defunct not set\n");
+			}
 			TAILQ_INSERT_HEAD(&nmp->nm_sess, dsp,
 			    nfsclds_list);
 			/*