]> err.no Git - linux-2.6/blobdiff - net/sunrpc/xprtrdma/transport.c
SUNRPC: Add support for per-client timeout values
[linux-2.6] / net / sunrpc / xprtrdma / transport.c
index 6f2112dd9f786953c24eadc707fb208a946da4f0..d1389afc8342270a5df2ff7cc2e3177a33f7ea7e 100644 (file)
@@ -289,6 +289,11 @@ xprt_rdma_destroy(struct rpc_xprt *xprt)
        module_put(THIS_MODULE);
 }
 
+static const struct rpc_timeout xprt_rdma_default_timeout = {
+       .to_initval = 60 * HZ,
+       .to_maxval = 60 * HZ,
+};
+
 /**
  * xprt_setup_rdma - Set up transport to use RDMA
  *
@@ -327,7 +332,7 @@ xprt_setup_rdma(struct xprt_create *args)
        }
 
        /* 60 second timeout, no retries */
-       xprt_set_timeout(&xprt->timeout, 0, 60UL * HZ);
+       xprt->timeout = &xprt_rdma_default_timeout;
        xprt->bind_timeout = (60U * HZ);
        xprt->connect_timeout = (60U * HZ);
        xprt->reestablish_timeout = (5U * HZ);
@@ -449,7 +454,7 @@ xprt_rdma_close(struct rpc_xprt *xprt)
        struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt);
 
        dprintk("RPC:       %s: closing\n", __func__);
-       xprt_disconnect(xprt);
+       xprt_disconnect_done(xprt);
        (void) rpcrdma_ep_disconnect(&r_xprt->rx_ep, &r_xprt->rx_ia);
 }
 
@@ -682,7 +687,7 @@ xprt_rdma_send_request(struct rpc_task *task)
        }
 
        if (rpcrdma_ep_post(&r_xprt->rx_ia, &r_xprt->rx_ep, req)) {
-               xprt_disconnect(xprt);
+               xprt_disconnect_done(xprt);
                return -ENOTCONN;       /* implies disconnect */
        }