IPVS: Add expire_quiescent_template()
In preparation for not including sysctl_expire_quiescent_template in struct netns_ipvs when CONFIG_SYCTL is not defined. Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
@@ -680,6 +680,16 @@ static inline void ip_vs_unbind_dest(struct ip_vs_conn *cp)
|
|||||||
atomic_dec(&dest->refcnt);
|
atomic_dec(&dest->refcnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int expire_quiescent_template(struct netns_ipvs *ipvs,
|
||||||
|
struct ip_vs_dest *dest)
|
||||||
|
{
|
||||||
|
#ifdef CONFIG_SYSCTL
|
||||||
|
return ipvs->sysctl_expire_quiescent_template &&
|
||||||
|
(atomic_read(&dest->weight) == 0);
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Checking if the destination of a connection template is available.
|
* Checking if the destination of a connection template is available.
|
||||||
@@ -696,8 +706,7 @@ int ip_vs_check_template(struct ip_vs_conn *ct)
|
|||||||
*/
|
*/
|
||||||
if ((dest == NULL) ||
|
if ((dest == NULL) ||
|
||||||
!(dest->flags & IP_VS_DEST_F_AVAILABLE) ||
|
!(dest->flags & IP_VS_DEST_F_AVAILABLE) ||
|
||||||
(ipvs->sysctl_expire_quiescent_template &&
|
expire_quiescent_template(ipvs, dest)) {
|
||||||
(atomic_read(&dest->weight) == 0))) {
|
|
||||||
IP_VS_DBG_BUF(9, "check_template: dest not available for "
|
IP_VS_DBG_BUF(9, "check_template: dest not available for "
|
||||||
"protocol %s s:%s:%d v:%s:%d "
|
"protocol %s s:%s:%d v:%s:%d "
|
||||||
"-> d:%s:%d\n",
|
"-> d:%s:%d\n",
|
||||||
|
Reference in New Issue
Block a user