|
@@ -1934,8 +1934,11 @@ 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)
|
|
|
+ if (unlikely(tp->repair) && tp->repair_queue == TCP_SEND_QUEUE) {
|
|
|
+ /* "when" is used as a start point for the retransmit timer */
|
|
|
+ TCP_SKB_CB(skb)->when = tcp_time_stamp;
|
|
|
goto repair; /* Skip network transmission */
|
|
|
+ }
|
|
|
|
|
|
cwnd_quota = tcp_cwnd_test(tp, skb);
|
|
|
if (!cwnd_quota) {
|