pNFS/flexfiles: Report RDMA connection errors to the server
commit7836d75467
upstream. The RPC/RDMA driver will return -EPROTO and -ENODEV as connection errors under certain circumstances. Make sure that we handle them and report them to the server. If not, we can end up cycling forever in a LAYOUTGET/LAYOUTRETURN loop. Fixes:a12f996d34
("NFSv4/pNFS: Use connections to a DS that are all of the same protocol family") Cc: stable@vger.kernel.org # 5.11.x Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
661714de24
Коммит
94d0dd56f8
|
@ -1140,6 +1140,8 @@ static int ff_layout_async_handle_error_v4(struct rpc_task *task,
|
|||
case -EIO:
|
||||
case -ETIMEDOUT:
|
||||
case -EPIPE:
|
||||
case -EPROTO:
|
||||
case -ENODEV:
|
||||
dprintk("%s DS connection error %d\n", __func__,
|
||||
task->tk_status);
|
||||
nfs4_delete_deviceid(devid->ld, devid->nfs_client,
|
||||
|
@ -1245,6 +1247,8 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
|
|||
case -ENOBUFS:
|
||||
case -EPIPE:
|
||||
case -EPERM:
|
||||
case -EPROTO:
|
||||
case -ENODEV:
|
||||
*op_status = status = NFS4ERR_NXIO;
|
||||
break;
|
||||
case -EACCES:
|
||||
|
|
Загрузка…
Ссылка в новой задаче