|
@@ -1729,6 +1729,7 @@ call_bind_status(struct rpc_task *task)
|
|
return;
|
|
return;
|
|
case -ECONNREFUSED: /* connection problems */
|
|
case -ECONNREFUSED: /* connection problems */
|
|
case -ECONNRESET:
|
|
case -ECONNRESET:
|
|
|
|
+ case -ECONNABORTED:
|
|
case -ENOTCONN:
|
|
case -ENOTCONN:
|
|
case -EHOSTDOWN:
|
|
case -EHOSTDOWN:
|
|
case -EHOSTUNREACH:
|
|
case -EHOSTUNREACH:
|
|
@@ -1799,7 +1800,9 @@ call_connect_status(struct rpc_task *task)
|
|
return;
|
|
return;
|
|
case -ECONNREFUSED:
|
|
case -ECONNREFUSED:
|
|
case -ECONNRESET:
|
|
case -ECONNRESET:
|
|
|
|
+ case -ECONNABORTED:
|
|
case -ENETUNREACH:
|
|
case -ENETUNREACH:
|
|
|
|
+ case -EHOSTUNREACH:
|
|
/* retry with existing socket, after a delay */
|
|
/* retry with existing socket, after a delay */
|
|
rpc_delay(task, 3*HZ);
|
|
rpc_delay(task, 3*HZ);
|
|
if (RPC_IS_SOFTCONN(task))
|
|
if (RPC_IS_SOFTCONN(task))
|
|
@@ -1902,6 +1905,7 @@ call_transmit_status(struct rpc_task *task)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
case -ECONNRESET:
|
|
case -ECONNRESET:
|
|
|
|
+ case -ECONNABORTED:
|
|
case -ENOTCONN:
|
|
case -ENOTCONN:
|
|
case -EPIPE:
|
|
case -EPIPE:
|
|
rpc_task_force_reencode(task);
|
|
rpc_task_force_reencode(task);
|
|
@@ -2011,8 +2015,9 @@ call_status(struct rpc_task *task)
|
|
xprt_conditional_disconnect(req->rq_xprt,
|
|
xprt_conditional_disconnect(req->rq_xprt,
|
|
req->rq_connect_cookie);
|
|
req->rq_connect_cookie);
|
|
break;
|
|
break;
|
|
- case -ECONNRESET:
|
|
|
|
case -ECONNREFUSED:
|
|
case -ECONNREFUSED:
|
|
|
|
+ case -ECONNRESET:
|
|
|
|
+ case -ECONNABORTED:
|
|
rpc_force_rebind(clnt);
|
|
rpc_force_rebind(clnt);
|
|
rpc_delay(task, 3*HZ);
|
|
rpc_delay(task, 3*HZ);
|
|
case -EPIPE:
|
|
case -EPIPE:
|