git: 30d4d3db431a - main - nfsd: Commit missing patches for c52bcd09c2a6

From: Rick Macklem <rmacklem_at_FreeBSD.org>
Date: Sat, 11 Jul 2026 19:33:42 UTC
The branch main has been updated by rmacklem:

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

commit 30d4d3db431a5df8084048c4d31e98e74d2f225a
Author:     Rick Macklem <rmacklem@FreeBSD.org>
AuthorDate: 2026-07-11 19:30:51 +0000
Commit:     Rick Macklem <rmacklem@FreeBSD.org>
CommitDate: 2026-07-11 19:32:46 +0000

    nfsd: Commit missing patches for c52bcd09c2a6
    
    Oops, I missed the other files for the commit.
    
    This should fix the build.
    
    Pointy hat goes on me.
    
    MFC after:      2 weeks
    Fixes:  c52bcd09c2a6 ("nfsd: Garbage collect stray NFSv4 state")
---
 sys/fs/nfs/nfs_var.h              | 1 +
 sys/fs/nfsserver/nfs_nfsdsocket.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h
index 525f573b5167..57cf1566a14d 100644
--- a/sys/fs/nfs/nfs_var.h
+++ b/sys/fs/nfs/nfs_var.h
@@ -169,6 +169,7 @@ int nfsrv_mdscopymr(char *, char *, char *, char *, int *, char *, NFSPROC_T *,
     struct nfsdevice **);
 void nfsrv_marknospc(char *, bool);
 void nfsrv_removedeleg(fhandle_t *, struct nfsrv_descript *, NFSPROC_T *);
+void nfsrv_freestrandedstate(struct nfsrvfh *);
 
 /* nfs_nfsdserv.c */
 int nfsrvd_access(struct nfsrv_descript *, int,
diff --git a/sys/fs/nfsserver/nfs_nfsdsocket.c b/sys/fs/nfsserver/nfs_nfsdsocket.c
index 36996425ae95..70aa20d4aa04 100644
--- a/sys/fs/nfsserver/nfs_nfsdsocket.c
+++ b/sys/fs/nfsserver/nfs_nfsdsocket.c
@@ -1031,7 +1031,8 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag,
 				cur_fsid = vp->v_mount->mnt_stat.f_fsid;
 				NFSVOPUNLOCK(vp);
 				vpnes = nes;
-			}
+			} else if (nd->nd_repstat == ESTALE)
+				nfsrv_freestrandedstate(&fh);
 			break;
 		case NFSV4OP_PUTPUBFH:
 			if (nfs_pubfhset) {