]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
RPC/RDMA: return a consistent error, when connect fails.
authorTom Talpey <talpey@netapp.com>
Thu, 9 Oct 2008 19:01:21 +0000 (15:01 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 10 Oct 2008 19:12:44 +0000 (15:12 -0400)
The xprt_connect call path does not expect such errors as ECONNREFUSED
to be returned from failed transport connection attempts, otherwise it
translates them to EIO and signals fatal errors. For example, mount.nfs
prints simply "internal error". Translate all such errors to ENOTCONN
from RPC/RDMA to match sockets behavior.

Signed-off-by: Tom Talpey <talpey@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/xprtrdma/rpc_rdma.c

index d245c0bf787360de03d5d7efef03ba34c0f6ad71..94ecf1b65ff67e250d5fa970ca939e4b7696a481 100644 (file)
@@ -699,7 +699,7 @@ rpcrdma_conn_func(struct rpcrdma_ep *ep)
                        xprt_wake_pending_tasks(xprt, 0);
        } else {
                if (xprt_test_and_clear_connected(xprt))
-                       xprt_wake_pending_tasks(xprt, ep->rep_connected);
+                       xprt_wake_pending_tasks(xprt, -ENOTCONN);
        }
        spin_unlock_bh(&xprt->transport_lock);
 }