|
@@ -1188,6 +1188,14 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ switch (status) {
|
|
|
+ case NFS4ERR_DELAY:
|
|
|
+ case NFS4ERR_GRACE:
|
|
|
+ return;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
mirror = FF_LAYOUT_COMP(lseg, idx);
|
|
|
err = ff_layout_track_ds_error(FF_LAYOUT_FROM_HDR(lseg->pls_layout),
|
|
|
mirror, offset, length, status, opnum,
|
|
@@ -1399,7 +1407,6 @@ static int ff_layout_write_done_cb(struct rpc_task *task,
|
|
|
ff_layout_reset_write(hdr, false);
|
|
|
return task->tk_status;
|
|
|
case -EAGAIN:
|
|
|
- rpc_restart_call_prepare(task);
|
|
|
return -EAGAIN;
|
|
|
}
|
|
|
|