OSDN Git Service

NFS handle COPY ERR_OFFLOAD_NO_REQS
authorOlga Kornievskaia <kolga@netapp.com>
Mon, 9 Jul 2018 19:13:35 +0000 (15:13 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 9 Aug 2018 16:56:39 +0000 (12:56 -0400)
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>
fs/nfs/nfs42proc.c

index aeb9837..77451be 100644 (file)
@@ -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;
                }