Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2881ae74 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

SUNRPC: Clean up the transport timeout initialisation

parent 698b6d08
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -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
 */
+0 −17
Original line number Diff line number Diff line
@@ -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
+6 −1
Original line number Diff line number Diff line
@@ -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);
+21 −8
Original line number Diff line number Diff line
@@ -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: