提交 2881ae74 编写于 作者: T Trond Myklebust

SUNRPC: Clean up the transport timeout initialisation

Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 698b6d08
...@@ -202,11 +202,6 @@ struct xprt_class { ...@@ -202,11 +202,6 @@ struct xprt_class {
char name[32]; char name[32];
}; };
/*
* Transport operations used by ULPs
*/
void xprt_set_timeout(struct rpc_timeout *to, unsigned int retr, unsigned long incr);
/* /*
* Generic internal transport functions * Generic internal transport functions
*/ */
......
...@@ -977,23 +977,6 @@ void xprt_release(struct rpc_task *task) ...@@ -977,23 +977,6 @@ void xprt_release(struct rpc_task *task)
spin_unlock(&xprt->reserve_lock); spin_unlock(&xprt->reserve_lock);
} }
/**
* xprt_set_timeout - set constant RPC timeout
* @to: RPC timeout parameters to set up
* @retr: number of retries
* @incr: amount of increase after each retry
*
*/
void xprt_set_timeout(struct rpc_timeout *to, unsigned int retr, unsigned long incr)
{
to->to_initval =
to->to_increment = incr;
to->to_maxval = to->to_initval + (incr * retr);
to->to_retries = retr;
to->to_exponential = 0;
}
EXPORT_SYMBOL_GPL(xprt_set_timeout);
/** /**
* xprt_create_transport - create an RPC transport * xprt_create_transport - create an RPC transport
* @args: rpc transport creation arguments * @args: rpc transport creation arguments
......
...@@ -289,6 +289,11 @@ xprt_rdma_destroy(struct rpc_xprt *xprt) ...@@ -289,6 +289,11 @@ xprt_rdma_destroy(struct rpc_xprt *xprt)
module_put(THIS_MODULE); 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 * xprt_setup_rdma - Set up transport to use RDMA
* *
...@@ -327,7 +332,7 @@ xprt_setup_rdma(struct xprt_create *args) ...@@ -327,7 +332,7 @@ xprt_setup_rdma(struct xprt_create *args)
} }
/* 60 second timeout, no retries */ /* 60 second timeout, no retries */
xprt_set_timeout(&xprt->timeout, 0, 60UL * HZ); memcpy(&xprt->timeout, &xprt_rdma_default_timeout, sizeof(xprt->timeout));
xprt->bind_timeout = (60U * HZ); xprt->bind_timeout = (60U * HZ);
xprt->connect_timeout = (60U * HZ); xprt->connect_timeout = (60U * HZ);
xprt->reestablish_timeout = (5U * HZ); xprt->reestablish_timeout = (5U * HZ);
......
...@@ -1895,6 +1895,13 @@ static struct rpc_xprt *xs_setup_xprt(struct xprt_create *args, ...@@ -1895,6 +1895,13 @@ static struct rpc_xprt *xs_setup_xprt(struct xprt_create *args,
return xprt; return xprt;
} }
static const struct rpc_timeout xs_udp_default_timeout = {
.to_initval = 5 * HZ,
.to_maxval = 30 * HZ,
.to_increment = 5 * HZ,
.to_retries = 5,
};
/** /**
* xs_setup_udp - Set up transport to use a UDP socket * xs_setup_udp - Set up transport to use a UDP socket
* @args: rpc transport creation arguments * @args: rpc transport creation arguments
...@@ -1905,6 +1912,7 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args) ...@@ -1905,6 +1912,7 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
struct sockaddr *addr = args->dstaddr; struct sockaddr *addr = args->dstaddr;
struct rpc_xprt *xprt; struct rpc_xprt *xprt;
struct sock_xprt *transport; struct sock_xprt *transport;
const struct rpc_timeout *timeo = &xs_udp_default_timeout;
xprt = xs_setup_xprt(args, xprt_udp_slot_table_entries); xprt = xs_setup_xprt(args, xprt_udp_slot_table_entries);
if (IS_ERR(xprt)) if (IS_ERR(xprt))
...@@ -1923,10 +1931,9 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args) ...@@ -1923,10 +1931,9 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
xprt->ops = &xs_udp_ops; xprt->ops = &xs_udp_ops;
if (args->timeout) if (args->timeout != NULL)
xprt->timeout = *args->timeout; timeo = args->timeout;
else memcpy(&xprt->timeout, timeo, sizeof(xprt->timeout));
xprt_set_timeout(&xprt->timeout, 5, 5 * HZ);
switch (addr->sa_family) { switch (addr->sa_family) {
case AF_INET: case AF_INET:
...@@ -1961,6 +1968,12 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args) ...@@ -1961,6 +1968,12 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
} }
static const struct rpc_timeout xs_tcp_default_timeout = {
.to_initval = 60 * HZ,
.to_maxval = 60 * HZ,
.to_retries = 2,
};
/** /**
* xs_setup_tcp - Set up transport to use a TCP socket * xs_setup_tcp - Set up transport to use a TCP socket
* @args: rpc transport creation arguments * @args: rpc transport creation arguments
...@@ -1971,6 +1984,7 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args) ...@@ -1971,6 +1984,7 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args)
struct sockaddr *addr = args->dstaddr; struct sockaddr *addr = args->dstaddr;
struct rpc_xprt *xprt; struct rpc_xprt *xprt;
struct sock_xprt *transport; struct sock_xprt *transport;
const struct rpc_timeout *timeo = &xs_tcp_default_timeout;
xprt = xs_setup_xprt(args, xprt_tcp_slot_table_entries); xprt = xs_setup_xprt(args, xprt_tcp_slot_table_entries);
if (IS_ERR(xprt)) if (IS_ERR(xprt))
...@@ -1988,10 +2002,9 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args) ...@@ -1988,10 +2002,9 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args)
xprt->ops = &xs_tcp_ops; xprt->ops = &xs_tcp_ops;
if (args->timeout) if (args->timeout != NULL)
xprt->timeout = *args->timeout; timeo = args->timeout;
else memcpy(&xprt->timeout, timeo, sizeof(xprt->timeout));
xprt_set_timeout(&xprt->timeout, 2, 60 * HZ);
switch (addr->sa_family) { switch (addr->sa_family) {
case AF_INET: case AF_INET:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册