freebsd-src/sys/fs/nfsclient
Rick Macklem bb53f071e8 nfscl: Add support for read delegations and atomic upgrade
For NFSv4.1/4.2, an atomic upgrade of a delegation from a
read delegation to a write delegation is allowed and can
result in significantly improved performance.
This patch adds this upgrade to the NFSv4.1/4.2 client and
enables use of read delegations.

For a test case of building a FreeBSD kernel (sources and
output objects) over a NFSv4.2 mount, these changes reduced
the elapsed time by 30% and included a reduction of 80% for
RPC counts when delegations were enabled.  As such, with this
patch there are at least certain cases where enabling
delegations seems to be worth the increased complexity they
bring.

This patch should only affect the NFSv4.1/4.2 behaviour
when delegations are enabled, which is not the default.

MFC after:	1 month
2024-06-12 16:41:12 -07:00
..
nfs_clbio.c Revert "nfscl: Do not do readahead for directories" 2024-05-26 08:02:30 -07:00
nfs_clcomsubs.c nfsclient: Propagate copyin() errors from nfsm_uiombuf() 2023-12-12 14:05:24 -05:00
nfs_clkdtrace.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
nfs_clkrpc.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
nfs_clnfsiod.c nfscl: Clear out a lot of cruft related to B_DIRECT 2024-04-27 17:10:48 -07:00
nfs_clnode.c Add vnode_pager_clean_{a,}sync(9) 2024-01-11 18:44:53 +02:00
nfs_clport.c nfsclient: eliminate ncl_writebp() 2024-01-05 06:58:18 +02:00
nfs_clrpcops.c nfscl: Add support for the NFSv4.1/4.2 WANT_xxx flags 2024-06-12 16:11:10 -07:00
nfs_clstate.c nfscl: Add support for read delegations and atomic upgrade 2024-06-12 16:41:12 -07:00
nfs_clsubs.c nfscl: Add support for read delegations and atomic upgrade 2024-06-12 16:41:12 -07:00
nfs_clvfsops.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
nfs_clvnops.c nfscl: Add support for read delegations and atomic upgrade 2024-06-12 16:41:12 -07:00
nfs_kdtrace.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nfs.h nfscl: Clear out a lot of cruft related to B_DIRECT 2024-04-27 17:10:48 -07:00
nfsmount.h nfscl: Revert part of commit 196787f79e 2024-04-25 12:32:02 -07:00
nfsnode.h nfscl: Clear out a lot of cruft related to B_DIRECT 2024-04-27 17:10:48 -07:00
nlminfo.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00