--- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -1138,10 +1138,6 @@ int ip_push_pending_frames(struct sock * tail_skb = &(tmp_skb->next); skb->len += tmp_skb->len; skb->data_len += tmp_skb->len; - skb->truesize += tmp_skb->truesize; - __sock_put(tmp_skb->sk); - tmp_skb->destructor = NULL; - tmp_skb->sk = NULL; } /* Unless user demanded real pmtu discovery (IP_PMTUDISC_DO), we allow --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1116,12 +1116,6 @@ int ip6_push_pending_frames(struct sock tail_skb = &(tmp_skb->next); skb->len += tmp_skb->len; skb->data_len += tmp_skb->len; -#if 0 /* Logically correct, but useless work, ip_fragment() will have to undo */ - skb->truesize += tmp_skb->truesize; - __sock_put(tmp_skb->sk); - tmp_skb->destructor = NULL; - tmp_skb->sk = NULL; -#endif } ipv6_addr_copy(final_dst, &fl->fl6_dst);