a3e709cd33
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 |
||
---|---|---|
.. | ||
nfs_commonacl.c | ||
nfs_commonkrpc.c | ||
nfs_commonport.c | ||
nfs_commonsubs.c | ||
nfs_var.h | ||
nfs.h | ||
nfscl.h | ||
nfsclstate.h | ||
nfsdport.h | ||
nfskpiport.h | ||
nfsm_subs.h | ||
nfsport.h | ||
nfsproto.h | ||
nfsrvcache.h | ||
nfsrvstate.h | ||
nfsv4_errstr.h | ||
rpcv2.h | ||
xdr_subs.h |