diff options
author | Olga Kornievskaia <kolga@netapp.com> | 2018-07-09 15:13:35 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2018-08-09 12:56:39 -0400 |
commit | 539f57b3e0fdaad20ddb0a45913cefee0c8c29c1 (patch) | |
tree | e2c0b7e9947b1bff08da46710bd09ce89f0dc10c /fs/nfs/nfs42proc.c | |
parent | c975c20926575e5968c617ec437647b2f9d87532 (diff) | |
download | lwn-539f57b3e0fdaad20ddb0a45913cefee0c8c29c1.tar.gz lwn-539f57b3e0fdaad20ddb0a45913cefee0c8c29c1.zip |
NFS handle COPY ERR_OFFLOAD_NO_REQS
If client sent async COPY and server replied with
ERR_OFFLOAD_NO_REQS, client should retry with a synchronous copy.
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/nfs42proc.c')
-rw-r--r-- | fs/nfs/nfs42proc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c index aeb9837b7e40..77451be9d702 100644 --- a/fs/nfs/nfs42proc.c +++ b/fs/nfs/nfs42proc.c @@ -316,7 +316,11 @@ ssize_t nfs42_proc_copy(struct file *src, loff_t pos_src, if (err == -ENOTSUPP) { err = -EOPNOTSUPP; break; - } if (err == -EAGAIN) { + } else if (err == -EAGAIN) { + dst_exception.retry = 1; + continue; + } else if (err == -NFS4ERR_OFFLOAD_NO_REQS && !args.sync) { + args.sync = true; dst_exception.retry = 1; continue; } |