]> err.no Git - linux-2.6/blobdiff - net/ipv4/tcp_output.c
[TCP]: Fix truesize underflow
[linux-2.6] / net / ipv4 / tcp_output.c
index b871db6adc55cd838c07b11b4461bc5e879f5377..44df1db726a37bc77c28dda33d5238b9f40a5a8e 100644 (file)
@@ -551,7 +551,9 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
        buff = sk_stream_alloc_skb(sk, nsize, GFP_ATOMIC);
        if (buff == NULL)
                return -ENOMEM; /* We'll just try again later. */
-       sk_charge_skb(sk, buff);
+
+       buff->truesize = skb->len - len;
+       skb->truesize -= buff->truesize;
 
        /* Correct the sequence numbers. */
        TCP_SKB_CB(buff)->seq = TCP_SKB_CB(skb)->seq + len;