mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
SUNRPC: Clean up the transport timeout initialisation
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
698b6d088e
commit
2881ae74e6
4 changed files with 27 additions and 31 deletions
|
@ -202,11 +202,6 @@ struct xprt_class {
|
|||
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
|
||||
*/
|
||||
|
|
|
@ -977,23 +977,6 @@ void xprt_release(struct rpc_task *task)
|
|||
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
|
||||
* @args: rpc transport creation arguments
|
||||
|
|
|
@ -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);
|
||||
memcpy(&xprt->timeout, &xprt_rdma_default_timeout, sizeof(xprt->timeout));
|
||||
xprt->bind_timeout = (60U * HZ);
|
||||
xprt->connect_timeout = (60U * HZ);
|
||||
xprt->reestablish_timeout = (5U * HZ);
|
||||
|
|
|
@ -1895,6 +1895,13 @@ static struct rpc_xprt *xs_setup_xprt(struct xprt_create *args,
|
|||
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
|
||||
* @args: rpc transport creation arguments
|
||||
|
@ -1905,6 +1912,7 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
|
|||
struct sockaddr *addr = args->dstaddr;
|
||||
struct rpc_xprt *xprt;
|
||||
struct sock_xprt *transport;
|
||||
const struct rpc_timeout *timeo = &xs_udp_default_timeout;
|
||||
|
||||
xprt = xs_setup_xprt(args, xprt_udp_slot_table_entries);
|
||||
if (IS_ERR(xprt))
|
||||
|
@ -1923,10 +1931,9 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
|
|||
|
||||
xprt->ops = &xs_udp_ops;
|
||||
|
||||
if (args->timeout)
|
||||
xprt->timeout = *args->timeout;
|
||||
else
|
||||
xprt_set_timeout(&xprt->timeout, 5, 5 * HZ);
|
||||
if (args->timeout != NULL)
|
||||
timeo = args->timeout;
|
||||
memcpy(&xprt->timeout, timeo, sizeof(xprt->timeout));
|
||||
|
||||
switch (addr->sa_family) {
|
||||
case AF_INET:
|
||||
|
@ -1961,6 +1968,12 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
|
|||
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
|
||||
* @args: rpc transport creation arguments
|
||||
|
@ -1971,6 +1984,7 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args)
|
|||
struct sockaddr *addr = args->dstaddr;
|
||||
struct rpc_xprt *xprt;
|
||||
struct sock_xprt *transport;
|
||||
const struct rpc_timeout *timeo = &xs_tcp_default_timeout;
|
||||
|
||||
xprt = xs_setup_xprt(args, xprt_tcp_slot_table_entries);
|
||||
if (IS_ERR(xprt))
|
||||
|
@ -1988,10 +2002,9 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args)
|
|||
|
||||
xprt->ops = &xs_tcp_ops;
|
||||
|
||||
if (args->timeout)
|
||||
xprt->timeout = *args->timeout;
|
||||
else
|
||||
xprt_set_timeout(&xprt->timeout, 2, 60 * HZ);
|
||||
if (args->timeout != NULL)
|
||||
timeo = args->timeout;
|
||||
memcpy(&xprt->timeout, timeo, sizeof(xprt->timeout));
|
||||
|
||||
switch (addr->sa_family) {
|
||||
case AF_INET:
|
||||
|
|
Loading…
Reference in a new issue