]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/ipv4/ip_forward.c
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[karo-tx-linux.git] / net / ipv4 / ip_forward.c
index cbfb1808fcc490b94dc0bbdab6142acb8fa37815..8b4ffd2168395b4d3b6ec67e166af13c122128ca 100644 (file)
@@ -54,7 +54,7 @@ static bool ip_exceeds_mtu(const struct sk_buff *skb, unsigned int mtu)
        if (skb->ignore_df)
                return false;
 
-       if (skb_is_gso(skb) && skb_gso_network_seglen(skb) <= mtu)
+       if (skb_is_gso(skb) && skb_gso_validate_mtu(skb, mtu))
                return false;
 
        return true;
@@ -117,7 +117,7 @@ int ip_forward(struct sk_buff *skb)
        if (opt->is_strictroute && rt->rt_uses_gateway)
                goto sr_failed;
 
-       IPCB(skb)->flags |= IPSKB_FORWARDED;
+       IPCB(skb)->flags |= IPSKB_FORWARDED | IPSKB_FRAG_SEGS;
        mtu = ip_dst_mtu_maybe_forward(&rt->dst, true);
        if (ip_exceeds_mtu(skb, mtu)) {
                IP_INC_STATS(net, IPSTATS_MIB_FRAGFAILS);