freebsd-dev/sys
Rick Macklem a3e709cd33 Modify the NFSv4.1 server so that it allows ReclaimComplete as done by ESXi 6.7.
I believe that a ReclaimComplete with rca_one_fs == TRUE is only
to be used after a file system has been transferred to a different
file server.  However, RFC5661 is somewhat vague w.r.t. this and
the ESXi 6.7 client does both a ReclaimComplete with rca_one_fs == TRUE
and one with ReclaimComplete with rca_one_fs == FALSE.
Therefore, just ignore the rca_one_fs == TRUE operation and return
NFS_OK without doing anything instead of replying NFS4ERR_NOTSUPP.
This allows the ESXi 6.7 NFSv4.1 client to do a mount.
After discussion on the NFSv4 IETF working group mailing list, doing this
along with setting a flag to note that a ReclaimComplete with rca_one_fs TRUE
was an appropriate way to handle this.
The flag that indicates that a ReclaimComplete with rca_one_fs == TRUE was
done may be used to disable replies of NFS4ERR_GRACE for non-reclaim
state operations in a future commit.

This patch along with r332790, r334492 and r336357 allow ESXi 6.7 NFSv4.1 mounts
work ok. ESX 6.5 NFSv4.1 mounts do not work well, due to what I believe are
violations of RFC-5661 and should not be used.

Reported by:	andreas.nagy@frequentis.com
Tested by:	andreas.nagy@frequentis.com, daniel@ftml.net (earlier version)
MFC after:	2 weeks
Relnotes:	yes
2018-07-28 20:21:04 +00:00
..
amd64 Rename VM_FREELIST_ISADMA to VM_FREELIST_LOWMEM. 2018-07-27 18:34:20 +00:00
arm Use the cp15 functions to read cp15 registers rather than using assembly 2018-07-28 17:21:34 +00:00
arm64 Simplify the arm64 implementation of pmap_mincore(). 2018-07-25 15:58:14 +00:00
bsm
cam For the dynamic I/O scheduler, make the TRIM stuff also count against 2018-07-26 22:55:51 +00:00
cddl ZFS: Reserve DMU_BACKUP_FEATURE flags for Native Encryption and ZSTD 2018-07-24 04:38:11 +00:00
compat Regen after r336171. 2018-07-10 14:04:52 +00:00
conf Only build the cache handling code we need when building the arm ELF 2018-07-28 12:50:09 +00:00
contrib Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
crypto libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
ddb Extend show proc with reaper, sigparent, and vmspace information 2018-05-25 13:59:48 +00:00
dev Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
dts Remove Atmel AT91RM9200 and AT91SAM9 support. 2018-07-27 18:28:22 +00:00
fs Modify the NFSv4.1 server so that it allows ReclaimComplete as done by ESXi 6.7. 2018-07-28 20:21:04 +00:00
gdb amd64: Protect the kernel text, data, and BSS by setting the RW/NX bits 2018-03-06 14:28:37 +00:00
geom OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
gnu dts: Update our copy to Linux 4.17 2018-06-14 07:12:10 +00:00
i386 Rename VM_FREELIST_ISADMA to VM_FREELIST_LOWMEM. 2018-07-27 18:34:20 +00:00
isa Revert r330780, it was improperly tested and results in taking a spin 2018-03-11 20:13:15 +00:00
kern Allow a EVFILT_TIMER kevent to be updated. 2018-07-27 13:49:17 +00:00
kgssapi OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
libkern Sync strlcpy with userland version, again 2018-06-21 17:35:13 +00:00
mips follow-up to r336635, update TAILQ to CK_SLIST for ie_handlers 2018-07-23 15:36:55 +00:00
modules Remove Atmel AT91RM9200 and AT91SAM9 support. 2018-07-27 18:28:22 +00:00
net ALTQ support for iflib. 2018-07-25 22:46:36 +00:00
net80211 net80211: Fix ifdetach w/o ifattach, small whitespace cleanup 2018-07-10 23:30:19 +00:00
netgraph Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
netinet icmp_quotelen was accidentially changes in r336676, undo this. 2018-07-24 16:45:01 +00:00
netinet6 Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
netipsec Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
netpfil Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
netsmb Eliminate the overhead of gratuitous repeated reinitialization of cap_rights 2018-05-09 18:47:24 +00:00
nfs Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
nfsclient
nfsserver
nlm
ofed Use __FBSDID() for RCS tags in ibcore. 2018-07-17 09:47:14 +00:00
opencrypto OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
powerpc Support building IPMI as a module on powerpc64 2018-07-25 18:58:57 +00:00
riscv Use SPP (Supervisor Previous Privilege) bit in the sstatus 2018-07-27 16:13:06 +00:00
rpc Set SO_SNDTIMEO in the client side krpc when CLSET_TIMEOUT is done. 2018-07-20 12:03:16 +00:00
security fix incorrect operator in the AUDITPIPE_SET_QLIMIT bounds check 2018-07-23 16:56:49 +00:00
sparc64 Implement atomic_swap_{32,64,int,long,ptr}(9). 2018-07-28 15:42:57 +00:00
sys Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
teken teken: Fix sequences header which was crossing the 80-col boundary 2018-05-29 08:41:44 +00:00
tests epoch_test: fix compile 2018-07-15 00:31:17 +00:00
tools Add dtb overlays support 2018-03-24 21:30:24 +00:00
ufs Add needed locking for um_flags added in -r335808. 2018-07-17 04:43:58 +00:00
vm To date, mlockall(MCL_FUTURE) has had the unfortunate side effect of 2018-07-28 04:06:33 +00:00
x86 On amd64, enable workarounds for several Ryzen erratas as described in 2018-07-27 15:31:20 +00:00
xdr
xen xen: add missing file from r336474 2018-07-19 10:14:52 +00:00
Makefile