mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
pNFS/flexfiles: Report RDMA connection errors to the server
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>
This commit is contained in:
parent
9597152d98
commit
7836d75467
@ -1131,6 +1131,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,
|
||||
@ -1236,6 +1238,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:
|
||||
|
Loading…
Reference in New Issue
Block a user