]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/ipvs/ip_vs_proto_tcp.c
ipvs: load balance IPv4 connections from a local process
[linux-2.6-omap-h63xx.git] / net / ipv4 / ipvs / ip_vs_proto_tcp.c
index de8ed73997c7005f40ca61eef6adbe2524ce320a..808e8be0280a0c3557cbcd3f6285597f27f70e8c 100644 (file)
@@ -166,7 +166,7 @@ tcp_snat_handler(struct sk_buff *skb,
        tcph->source = cp->vport;
 
        /* Adjust TCP checksums */
-       if (!cp->app) {
+       if (!cp->app && (tcph->check != 0)) {
                /* Only port and addr are changed, do fast csum update */
                tcp_fast_csum_update(cp->af, tcph, &cp->daddr, &cp->vaddr,
                                     cp->dport, cp->vport);
@@ -235,7 +235,7 @@ tcp_dnat_handler(struct sk_buff *skb,
        /*
         *      Adjust TCP checksums
         */
-       if (!cp->app) {
+       if (!cp->app && (tcph->check != 0)) {
                /* Only port and addr are changed, do fast csum update */
                tcp_fast_csum_update(cp->af, tcph, &cp->vaddr, &cp->daddr,
                                     cp->vport, cp->dport);