From: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> When re-exporting a NFSv4.x filesystem through knfsd, we want to ensure that the individual knfsd threads don't get stuck waiting for the server in a NFS4ERR_DELAY loop. While it may make sense to have the re-exported client retry a few times, particularly when the clients are using NFSv3, ultimately we want to just punt a EAGAIN back to knfsd, so that it can return NFS4ERR_DELAY/NFS3ERR_JUKEBOX, and free up the thread. With that in mind, add a client module parameter, 'delay_retrans', that specifies how many times a 'softerr' mounted NFSv4 filesystem should retry before returning EAGAIN. In order to avoid disrupting existing setups, the feature is disabled by default, however it can be enabled by specifying a positive value for the new parameter. Trond Myklebust (2): NFSv4: Add a parameter to limit the number of retries after NFS4ERR_DELAY NFSv4/pnfs: Allow layoutget to return EAGAIN for softerr mounts .../admin-guide/kernel-parameters.txt | 7 +++ fs/nfs/nfs4_fs.h | 2 + fs/nfs/nfs4proc.c | 43 +++++++++++++++---- fs/nfs/pnfs.c | 8 +++- fs/nfs/pnfs.h | 5 ++- fs/nfs/super.c | 8 +++- fs/nfs/write.c | 2 + 7 files changed, 63 insertions(+), 12 deletions(-) -- 2.41.0