--- linux-2.6.11.4lvs/net/ipv4/ipvs/ip_vs_core.c 2005-08-31 11:52:57.000000000 +0200 +++ linux-2.6.11.4/net/ipv4/ipvs/ip_vs_core.c 2005-03-16 01:08:59.000000000 +0100 @@ -947,7 +947,6 @@ struct iphdr *iph; struct ip_vs_protocol *pp; struct ip_vs_conn *cp; - struct ip_vs_conn *ct; int ret, restart; int ihl; @@ -1003,8 +1002,7 @@ IP_VS_DBG_PKT(11, pp, skb, 0, "Incoming packet"); /* Check the server status */ - /* PATCH: dest with weight = 0 are out-of-service */ - if (cp->dest && ( !(cp->dest->flags & IP_VS_DEST_F_AVAILABLE) || (atomic_read(&cp->dest->weight) == 0) )) { + if (cp->dest && !(cp->dest->flags & IP_VS_DEST_F_AVAILABLE)) { /* the destination server is not availabe */ if (sysctl_ip_vs_expire_nodest_conn) { @@ -1039,17 +1037,6 @@ ip_vs_sync_conn(cp); ip_vs_conn_put(cp); - - /* PATCH: if there is a connection template (ct), we must restart its timer */ - ct = cp->control; - if (ct) { - /* set template timeout to the current persistent timeout of the virtual server - and restart timer*/ - atomic_inc(&ct->refcnt); - ct->timeout = cp->dest->svc->timeout; - ip_vs_conn_put(ct); - } - return ret; } --- linux-2.6.11.4lvs/net/ipv4/ipvs/ip_vs_conn.c 2005-08-31 11:52:08.000000000 +0200 +++ linux-2.6.11.4/net/ipv4/ipvs/ip_vs_conn.c 2005-03-16 01:09:16.000000000 +0100 @@ -467,8 +467,7 @@ /* * Invalidate the connection template */ - /* PATCH: connection template has cport == 0 */ - if (ct->cport == 0) { + if (ct->cport) { if (ip_vs_conn_unhash(ct)) { ct->dport = 65535; ct->vport = 65535; @@ -477,8 +476,6 @@ } } - - /* * Simply decrease the refcnt of the template, * don't restart its timer.