SUNRPC: call_connect_status should handle -EPROTO
The xprtrdma connect logic can return -EPROTO if the underlying device or network path does not support RDMA. This can happen after a device removal/insertion. - When SOFTCONN is set, EPROTO is a permanent error. - When SOFTCONN is not set, EPROTO is treated as a temporary error. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
2bb50aabb6
commit
b8457606d9
@ -2130,6 +2130,7 @@ call_connect_status(struct rpc_task *task)
|
|||||||
case -ENETUNREACH:
|
case -ENETUNREACH:
|
||||||
case -EHOSTUNREACH:
|
case -EHOSTUNREACH:
|
||||||
case -EPIPE:
|
case -EPIPE:
|
||||||
|
case -EPROTO:
|
||||||
xprt_conditional_disconnect(task->tk_rqstp->rq_xprt,
|
xprt_conditional_disconnect(task->tk_rqstp->rq_xprt,
|
||||||
task->tk_rqstp->rq_connect_cookie);
|
task->tk_rqstp->rq_connect_cookie);
|
||||||
if (RPC_IS_SOFTCONN(task))
|
if (RPC_IS_SOFTCONN(task))
|
||||||
|
Loading…
Reference in New Issue
Block a user