summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorWensong Zhang <wensong@linux-vs.org>2003-07-20 12:37:02 -0700
committerDavid S. Miller <davem@nuts.ninka.net>2003-07-20 12:37:02 -0700
commit94c3cc0071d2e9d8ff7f7cf6410a19ccd4b2cc17 (patch)
tree51461b14aebab6680fbd1c5923fd2e95015dbc5a /net
parent55e61717004c3ad829b25ee0a77350178a3cabd0 (diff)
[IPV4/IPVS]: Deactivate the timer in connection expire if it is activated by other users
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/ipvs/ip_vs_conn.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/ipvs/ip_vs_conn.c b/net/ipv4/ipvs/ip_vs_conn.c
index 89752d03f017..5f0365b16b34 100644
--- a/net/ipv4/ipvs/ip_vs_conn.c
+++ b/net/ipv4/ipvs/ip_vs_conn.c
@@ -507,6 +507,10 @@ static void ip_vs_conn_expire(unsigned long data)
* refcnt==1 implies I'm the only one referrer
*/
if (likely(atomic_read(&cp->refcnt) == 1)) {
+ /* delete the timer if it is activated by other users */
+ if (timer_pending(&cp->timer))
+ del_timer(&cp->timer);
+
/* does anybody control me? */
if (cp->control)
ip_vs_control_del(cp);