[IPV6]: Fix reversed local_df test in ip6_fragment

I managed to reverse the local_df test when forward-porting this
patch so it actually makes things worse by never fragmenting at
all.

Thanks to David Stevens for testing and reporting this bug.

Bill Fink pointed out that the local_df setting is also the wrong
way around.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Herbert Xu and committed by David S. Miller b5c15fc0 073a3719

+2 -2
+2 -2
net/ipv6/ip6_output.c
··· 621 * or if the skb it not generated by a local socket. (This last 622 * check should be redundant, but it's free.) 623 */ 624 - if (skb->local_df) { 625 skb->dev = skb->dst->dev; 626 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); 627 IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_FRAGFAILS); ··· 1421 } 1422 1423 /* Allow local fragmentation. */ 1424 - if (np->pmtudisc >= IPV6_PMTUDISC_DO) 1425 skb->local_df = 1; 1426 1427 ipv6_addr_copy(final_dst, &fl->fl6_dst);
··· 621 * or if the skb it not generated by a local socket. (This last 622 * check should be redundant, but it's free.) 623 */ 624 + if (!skb->local_df) { 625 skb->dev = skb->dst->dev; 626 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); 627 IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_FRAGFAILS); ··· 1421 } 1422 1423 /* Allow local fragmentation. */ 1424 + if (np->pmtudisc < IPV6_PMTUDISC_DO) 1425 skb->local_df = 1; 1426 1427 ipv6_addr_copy(final_dst, &fl->fl6_dst);