freebsd-dev/sys/fs/nfsclient
Rick Macklem 62c5be4ab4 nfscl: Add a check for "has acquired a delegation" to nfscl_removedeleg()
Commit 5e5ca4c8fc added a flag to a NFSv4 mount point that is set when
the first delegation is acquired from the NFSv4 server.

For a common case where delegations are not being issued by the
NFSv4 server, the nfscl_removedeleg() code acquires the mutex lock for
open/lock state, finds the delegation list empty, then just unlocks the
mutex and returns. This patch adds a check of the flag to avoid the
need to acquire the mutex for this common case.

This change appears to be performance neutral for a small number
of opens, but should reduce lock contention for a large number of opens
for the common case where server is not issuing delegations.

This commit should not affect the high level semantics of delegation
handling.

MFC after:      2 weeks
2021-09-26 18:37:25 -07:00
..
nfs_clbio.c buffer pager: allow get_blksize method to return error 2021-09-17 20:29:55 +03:00
nfs_clcomsubs.c nfsclient: Fix a typo in a comment 2021-09-26 15:17:00 +02:00
nfs_clkdtrace.c fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs_clkrpc.c fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs_clnfsiod.c
nfs_clnode.c nfscl: Cache an open stateid for the "oneopenown" mount option 2021-07-28 15:48:27 -07:00
nfs_clport.c nfssvc: Zero the buffer copied out when NFSSVC_DUMPMNTOPTS is set 2021-07-15 22:41:10 -04:00
nfs_clrpcops.c nfscl: Make vfs.nfs.maxcopyrange larger by default 2021-09-11 15:36:32 -07:00
nfs_clstate.c nfscl: Add a check for "has acquired a delegation" to nfscl_removedeleg() 2021-09-26 18:37:25 -07:00
nfs_clsubs.c nfsclient: add nfs node locking around uses of n_direofoffset 2021-02-28 14:53:54 -08:00
nfs_clvfsops.c nfsclient: Avoid copying uninitialized bytes into statfs 2021-07-15 12:18:17 -04:00
nfs_clvnops.c nfscl: Use vfs.nfs.maxalloclen to limit Deallocate RPC RTT 2021-09-18 14:38:43 -07:00
nfs_kdtrace.h fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs.h
nfsmount.h nfscl: Add a VOP_DEALLOCATE() for the NFSv4.2 client 2021-08-27 18:31:36 -07:00
nfsnode.h nfscl: Cache an open stateid for the "oneopenown" mount option 2021-07-28 15:48:27 -07:00
nlminfo.h