mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-14 00:04:00 +08:00
SUNRPC: Handle EPIPE in xprt_connect_status
The callback handler xs_error_report() can end up propagating an EPIPE error by means of the call to xprt_wake_pending_tasks(). Ensure that xprt_connect_status() does not automatically convert this into an EIO error. Reported-by: Weston Andros Adamson <dros@primarydata.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
3601c4a91e
commit
2fc193cf92
@ -1814,6 +1814,7 @@ call_connect_status(struct rpc_task *task)
|
|||||||
case -ENETUNREACH:
|
case -ENETUNREACH:
|
||||||
case -EHOSTUNREACH:
|
case -EHOSTUNREACH:
|
||||||
case -ENOBUFS:
|
case -ENOBUFS:
|
||||||
|
case -EPIPE:
|
||||||
if (RPC_IS_SOFTCONN(task))
|
if (RPC_IS_SOFTCONN(task))
|
||||||
break;
|
break;
|
||||||
/* retry with existing socket, after a delay */
|
/* retry with existing socket, after a delay */
|
||||||
|
@ -744,6 +744,7 @@ static void xprt_connect_status(struct rpc_task *task)
|
|||||||
case -ECONNABORTED:
|
case -ECONNABORTED:
|
||||||
case -ENETUNREACH:
|
case -ENETUNREACH:
|
||||||
case -EHOSTUNREACH:
|
case -EHOSTUNREACH:
|
||||||
|
case -EPIPE:
|
||||||
case -EAGAIN:
|
case -EAGAIN:
|
||||||
dprintk("RPC: %5u xprt_connect_status: retrying\n", task->tk_pid);
|
dprintk("RPC: %5u xprt_connect_status: retrying\n", task->tk_pid);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user