summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprt.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2013-12-31 13:13:30 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2013-12-31 13:42:22 -0500
commit0fe8d04e8c3a1eb49089793e38b60a17cee564e3 (patch)
treed4463802809184fa533b503cc25998f76cba8a2f /net/sunrpc/xprt.c
parent23e66ba97127ff3b064d4c6c5138aa34eafc492f (diff)
downloadlinux-stable-0fe8d04e8c3a1eb49089793e38b60a17cee564e3.tar.gz
linux-stable-0fe8d04e8c3a1eb49089793e38b60a17cee564e3.tar.bz2
linux-stable-0fe8d04e8c3a1eb49089793e38b60a17cee564e3.zip
SUNRPC: Ensure xprt_connect_status handles all potential connection errors
Currently, xprt_connect_status will convert connection error values such as ECONNREFUSED, ECONNRESET, ... into EIO, which means that they never get handled. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'net/sunrpc/xprt.c')
-rw-r--r--net/sunrpc/xprt.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index 04199bc8416f..ddd198e90292 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -749,6 +749,11 @@ static void xprt_connect_status(struct rpc_task *task)
}
switch (task->tk_status) {
+ case -ECONNREFUSED:
+ case -ECONNRESET:
+ case -ECONNABORTED:
+ case -ENETUNREACH:
+ case -EHOSTUNREACH:
case -EAGAIN:
dprintk("RPC: %5u xprt_connect_status: retrying\n", task->tk_pid);
break;