]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
SUNRPC: Ensure xprt_connect_status handles all potential connection errors
authorTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 31 Dec 2013 18:13:30 +0000 (13:13 -0500)
committerJiri Slaby <jslaby@suse.cz>
Mon, 16 Feb 2015 14:08:13 +0000 (15:08 +0100)
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>
net/sunrpc/xprt.c

index 42ce6bfc729d4f775741b5170dc99aa8a50102cb..92ed62ee5a32c37adb64287415d264f8f7c6dfc5 100644 (file)
@@ -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;