diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index cfe6ffe1c17..2798706cb06 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1986,6 +1986,9 @@ static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle,  		tso_segs = tcp_init_tso_segs(sk, skb, mss_now);  		BUG_ON(!tso_segs); +		if (unlikely(tp->repair) && tp->repair_queue == TCP_SEND_QUEUE) +			goto repair; /* Skip network transmission */ +  		cwnd_quota = tcp_cwnd_test(tp, skb);  		if (!cwnd_quota)  			break; @@ -2026,6 +2029,7 @@ static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle,  		if (unlikely(tcp_transmit_skb(sk, skb, 1, gfp)))  			break; +repair:  		/* Advance the send_head.  This one is sent out.  		 * This call will increment packets_out.  		 */  |