On Tue, Mar 20 2018, J. Bruce Fields wrote: > On Fri, Mar 16, 2018 at 10:44:23AM +1100, NeilBrown wrote: >> >> nfs4_proc_exchange_id() can return -EINVAL if the server >> reported NFS4INVAL (which I have seen in a packet trace), > > Can you say which server this was? (One we can fix?) It was Linux 2.6.32 (on armv5), and presumably anything before Commit: 357f54d6b382 ("NFS fix the setting of exchange id flag") which landed in 2.6.38. These servers return NFS4ERR_INVAL when EXCHGID4_FLAG_BIND_PRINC_STATEID is set in the exchange_id flags, which Linux has done since Commit: 4f0b429df104 ("NFSv4.1: Enable state protection") in 3.11. Maybe NFS should retry without that flag if it gets EINVAL?? Or it could just say that NFSv4.1 isn't supported. I still don't think EIO is justified. Thanks, NeilBrown