X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=net%2Fipv4%2Fip_output.c;h=b0b2e3059f1150817bdddba024b54ff34b1012c3;hb=62910554656cdcd6b6f84a5154c4155aae4ca231;hp=f09135e1e14fade1fca1126f5b1ebcb873cfaeab;hpb=22265a5c3c103cf8c50be62e6c90d045eb649e6d;p=net-next-2.6.git diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index f09135e1e14..b0b2e3059f1 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -310,7 +311,7 @@ int ip_output(struct sk_buff *skb) !(IPCB(skb)->flags & IPSKB_REROUTED)); } -int ip_queue_xmit(struct sk_buff *skb, int ipfragok) +int ip_queue_xmit(struct sk_buff *skb) { struct sock *sk = skb->sk; struct inet_sock *inet = inet_sk(sk); @@ -369,7 +370,7 @@ packet_routed: skb_reset_network_header(skb); iph = ip_hdr(skb); *((__be16 *)iph) = htons((4 << 12) | (5 << 8) | (inet->tos & 0xff)); - if (ip_dont_fragment(sk, &rt->u.dst) && !ipfragok) + if (ip_dont_fragment(sk, &rt->u.dst) && !skb->local_df) iph->frag_off = htons(IP_DF); else iph->frag_off = 0;