diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 3 | 
1 files changed, 3 insertions, 0 deletions
| diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 6e4afc48d7bb..979520e46e33 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1320,6 +1320,7 @@ int tcp_fragment(struct sock *sk, enum tcp_queue tcp_queue,  	buff = sk_stream_alloc_skb(sk, nsize, gfp, true);  	if (!buff)  		return -ENOMEM; /* We'll just try again later. */ +	skb_copy_decrypted(buff, skb);  	sk->sk_wmem_queued += buff->truesize;  	sk_mem_charge(sk, buff->truesize); @@ -1874,6 +1875,7 @@ static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len,  	buff = sk_stream_alloc_skb(sk, 0, gfp, true);  	if (unlikely(!buff))  		return -ENOMEM; +	skb_copy_decrypted(buff, skb);  	sk->sk_wmem_queued += buff->truesize;  	sk_mem_charge(sk, buff->truesize); @@ -2143,6 +2145,7 @@ static int tcp_mtu_probe(struct sock *sk)  	sk_mem_charge(sk, nskb->truesize);  	skb = tcp_send_head(sk); +	skb_copy_decrypted(nskb, skb);  	TCP_SKB_CB(nskb)->seq = TCP_SKB_CB(skb)->seq;  	TCP_SKB_CB(nskb)->end_seq = TCP_SKB_CB(skb)->seq + probe_size; | 
