From: Eric Dumazet <[email protected]>
Date: Fri, 19 Apr 2019 16:02:03 -0700
> tcp sendmsg() and sendpage() normally advance skb->data_len
> and skb->truesize by the payload added to an skb.
>
> But sendmsg(fd, ..., MSG_ZEROCOPY) has to account for whole pages,
> even if a single byte of payload is used in the page.
>
> This means that we can not assume skb->truesize can be adjusted
> by skb->data_len. We must instead overwrite its value.
>
> Otherwise skb->truesize is too big and can hit socket sndbuf limit,
> especially if the skb is recycled multiple times :/
>
> Fixes: 472c2e07eef0 ("tcp: add one skb cache for tx")
> Signed-off-by: Eric Dumazet <[email protected]>
Applied, thanks Eric.