mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-06 22:58:29 +00:00
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);
|
spin_unlock(&clp->cl_lock);
|
||||||
|
|
||||||
/* Cap maximum reconnect timeout at 1/2 lease period */
|
/* 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 *,
|
struct rpc_xprt *,
|
||||||
void *),
|
void *),
|
||||||
void *data);
|
void *data);
|
||||||
void rpc_cap_max_reconnect_timeout(struct rpc_clnt *clnt,
|
void rpc_set_connect_timeout(struct rpc_clnt *clnt,
|
||||||
unsigned long timeo);
|
unsigned long connect_timeout,
|
||||||
|
unsigned long reconnect_timeout);
|
||||||
|
|
||||||
int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *,
|
int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *,
|
||||||
struct rpc_xprt_switch *,
|
struct rpc_xprt_switch *,
|
||||||
|
|
|
@ -2747,17 +2747,19 @@ rpc_xprt_set_connect_timeout(struct rpc_clnt *clnt,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
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 = {
|
struct connect_timeout_data timeout = {
|
||||||
.connect_timeout = timeo,
|
.connect_timeout = connect_timeout,
|
||||||
.reconnect_timeout = timeo,
|
.reconnect_timeout = reconnect_timeout,
|
||||||
};
|
};
|
||||||
rpc_clnt_iterate_for_each_xprt(clnt,
|
rpc_clnt_iterate_for_each_xprt(clnt,
|
||||||
rpc_xprt_set_connect_timeout,
|
rpc_xprt_set_connect_timeout,
|
||||||
&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)
|
void rpc_clnt_xprt_switch_put(struct rpc_clnt *clnt)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue