|
@@ -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.
|
|
|
*/
|