diff options
Diffstat (limited to 'net/ipv4/ipvs')
-rw-r--r-- | net/ipv4/ipvs/ip_vs_xmit.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv4/ipvs/ip_vs_xmit.c b/net/ipv4/ipvs/ip_vs_xmit.c index 7c074e386c17..66775ad9e328 100644 --- a/net/ipv4/ipvs/ip_vs_xmit.c +++ b/net/ipv4/ipvs/ip_vs_xmit.c | |||
@@ -16,8 +16,8 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
19 | #include <linux/ip.h> | ||
20 | #include <linux/tcp.h> /* for tcphdr */ | 19 | #include <linux/tcp.h> /* for tcphdr */ |
20 | #include <net/ip.h> | ||
21 | #include <net/tcp.h> /* for csum_tcpudp_magic */ | 21 | #include <net/tcp.h> /* for csum_tcpudp_magic */ |
22 | #include <net/udp.h> | 22 | #include <net/udp.h> |
23 | #include <net/icmp.h> /* for icmp_send */ | 23 | #include <net/icmp.h> /* for icmp_send */ |
@@ -406,14 +406,12 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
406 | iph->daddr = rt->rt_dst; | 406 | iph->daddr = rt->rt_dst; |
407 | iph->saddr = rt->rt_src; | 407 | iph->saddr = rt->rt_src; |
408 | iph->ttl = old_iph->ttl; | 408 | iph->ttl = old_iph->ttl; |
409 | iph->tot_len = htons(skb->len); | ||
410 | ip_select_ident(iph, &rt->u.dst, NULL); | 409 | ip_select_ident(iph, &rt->u.dst, NULL); |
411 | ip_send_check(iph); | ||
412 | 410 | ||
413 | /* Another hack: avoid icmp_send in ip_fragment */ | 411 | /* Another hack: avoid icmp_send in ip_fragment */ |
414 | skb->local_df = 1; | 412 | skb->local_df = 1; |
415 | 413 | ||
416 | IP_VS_XMIT(skb, rt); | 414 | ip_local_out(skb); |
417 | 415 | ||
418 | LeaveFunction(10); | 416 | LeaveFunction(10); |
419 | 417 | ||