diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 0377c061f22f..081dcd6fd0c4 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -1796,11 +1796,13 @@ static int tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle, | |||
1796 | tcp_event_new_data_sent(sk, skb); | 1796 | tcp_event_new_data_sent(sk, skb); |
1797 | 1797 | ||
1798 | tcp_minshall_update(tp, mss_now, skb); | 1798 | tcp_minshall_update(tp, mss_now, skb); |
1799 | sent_pkts++; | 1799 | sent_pkts += tcp_skb_pcount(skb); |
1800 | 1800 | ||
1801 | if (push_one) | 1801 | if (push_one) |
1802 | break; | 1802 | break; |
1803 | } | 1803 | } |
1804 | if (inet_csk(sk)->icsk_ca_state == TCP_CA_Recovery) | ||
1805 | tp->prr_out += sent_pkts; | ||
1804 | 1806 | ||
1805 | if (likely(sent_pkts)) { | 1807 | if (likely(sent_pkts)) { |
1806 | tcp_cwnd_validate(sk); | 1808 | tcp_cwnd_validate(sk); |
@@ -2294,6 +2296,9 @@ begin_fwd: | |||
2294 | return; | 2296 | return; |
2295 | NET_INC_STATS_BH(sock_net(sk), mib_idx); | 2297 | NET_INC_STATS_BH(sock_net(sk), mib_idx); |
2296 | 2298 | ||
2299 | if (inet_csk(sk)->icsk_ca_state == TCP_CA_Recovery) | ||
2300 | tp->prr_out += tcp_skb_pcount(skb); | ||
2301 | |||
2297 | if (skb == tcp_write_queue_head(sk)) | 2302 | if (skb == tcp_write_queue_head(sk)) |
2298 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, | 2303 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, |
2299 | inet_csk(sk)->icsk_rto, | 2304 | inet_csk(sk)->icsk_rto, |