freebsd-src/sys/fs/nfs
Rick Macklem a7de510685 nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex
On Feb. 28, a problem was reported on freebsd-stable@ where a
nfsd thread processing an ExchangeID operation was blocked for
a long time by another nfsd thread performing a copy_file_range.
This occurred because the copy_file_range was taking a long time,
but also because handling a clientID requires that all other nfsd
threads be blocked via an exclusive lock, as required by ExchangeID.

This patch adds two arguments to nfsv4_cleanclient() so that it
can optionally be called with a mutex held.  For this patch, the
first of these arguments is "false" and, as such, there is no
change in semantics.  However, this change will allow a future
commit to modify handling of the clientID so that it can be done
with a mutex held while other nfsd threads continue to process
NFS RPCs.

MFC after:	1 month
2024-06-21 15:08:48 -07:00
..
nfs_commonacl.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
nfs_commonkrpc.c nfscl: Fix handling of expired Kerberos credentials (NFSv4.1/4.2) 2023-12-26 14:33:39 -08:00
nfs_commonport.c nfscl: Clear out a lot of cruft related to B_DIRECT 2024-04-27 17:10:48 -07:00
nfs_commonsubs.c nfscl: Only update atime for Copy when noatime is not specified 2024-01-11 16:38:33 -08:00
nfs_var.h nfsd: Fix Link conformance with RFC8881 for delegations 2024-05-04 14:30:07 -07:00
nfs.h nfscl/kgssapi: Fix Kerberized NFS mounts to pNFS servers 2023-10-23 13:21:14 -07:00
nfscl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfsclstate.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfsdport.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfskpiport.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfsm_subs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfsport.h nfscl: Clear out a lot of cruft related to B_DIRECT 2024-04-27 17:10:48 -07:00
nfsproto.h nfsd: Update a file missed by commit e2c9fad2e0 2024-06-04 18:54:15 -07:00
nfsrvcache.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfsrvstate.h nfsd: Fix nfsrv_cleanclient so that it can be called with a mutex 2024-06-21 15:08:48 -07:00
nfsv4_errstr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rpcv2.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
xdr_subs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00