aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2013-12-31 13:13:30 -0500
committerJiri Slaby <jslaby@suse.cz>2015-02-16 15:08:13 +0100
commit6686e9091ed571d4a616d2e655c22e34ded49fcb (patch)
tree247619e4e0020a23c194e9e769fcefb055e383c3
parent5a88b3915463423b14e19d50e96f35fa2a6f96d1 (diff)
SUNRPC: Ensure xprt_connect_status handles all potential connection errors
commit 0fe8d04e8c3a1eb49089793e38b60a17cee564e3 upstream. 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> Acked-by: NeilBrown <neilb@suse.de> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
-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 42ce6bfc729d..92ed62ee5a32 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -745,6 +745,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;