NFSv4: Set the connection timeout to match the lease period
Set the timeout for TCP connections to be 1 lease period to ensure that we don't lose our lease due to a faulty TCP connection. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
7196dbb02e
commit
26ae102f2c
3 changed files with 10 additions and 7 deletions
|
@ -153,7 +153,7 @@ void nfs4_set_lease_period(struct nfs_client *clp,
|
|||
spin_unlock(&clp->cl_lock);
|
||||
|
||||
/* Cap maximum reconnect timeout at 1/2 lease period */
|
||||
rpc_cap_max_reconnect_timeout(clp->cl_rpcclient, lease >> 1);
|
||||
rpc_set_connect_timeout(clp->cl_rpcclient, lease, lease >> 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -201,8 +201,9 @@ int rpc_clnt_add_xprt(struct rpc_clnt *, struct xprt_create *,
|
|||
struct rpc_xprt *,
|
||||
void *),
|
||||
void *data);
|
||||
void rpc_cap_max_reconnect_timeout(struct rpc_clnt *clnt,
|
||||
unsigned long timeo);
|
||||
void rpc_set_connect_timeout(struct rpc_clnt *clnt,
|
||||
unsigned long connect_timeout,
|
||||
unsigned long reconnect_timeout);
|
||||
|
||||
int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *,
|
||||
struct rpc_xprt_switch *,
|
||||
|
|
|
@ -2747,17 +2747,19 @@ rpc_xprt_set_connect_timeout(struct rpc_clnt *clnt,
|
|||
}
|
||||
|
||||
void
|
||||
rpc_cap_max_reconnect_timeout(struct rpc_clnt *clnt, unsigned long timeo)
|
||||
rpc_set_connect_timeout(struct rpc_clnt *clnt,
|
||||
unsigned long connect_timeout,
|
||||
unsigned long reconnect_timeout)
|
||||
{
|
||||
struct connect_timeout_data timeout = {
|
||||
.connect_timeout = timeo,
|
||||
.reconnect_timeout = timeo,
|
||||
.connect_timeout = connect_timeout,
|
||||
.reconnect_timeout = reconnect_timeout,
|
||||
};
|
||||
rpc_clnt_iterate_for_each_xprt(clnt,
|
||||
rpc_xprt_set_connect_timeout,
|
||||
&timeout);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpc_cap_max_reconnect_timeout);
|
||||
EXPORT_SYMBOL_GPL(rpc_set_connect_timeout);
|
||||
|
||||
void rpc_clnt_xprt_switch_put(struct rpc_clnt *clnt)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue