If we make sure all listeners have app_limited set to ~0U,
then a clone will also inherit proper initial value.

Signed-off-by: Eric Dumazet <eduma...@google.com>
---
 net/ipv4/tcp.c           | 3 +++
 net/ipv4/tcp_minisocks.c | 3 ---
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 
551ad8604bea0cb459805165bb216a99fd3bd8e2..5f15fcc9612ae6b6964ca15660dbb7eb8cd71d83
 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2609,6 +2609,9 @@ int tcp_disconnect(struct sock *sk, int flags)
        tp->sacked_out = 0;
        tp->tlp_high_seq = 0;
        tp->last_oow_ack_time = 0;
+       /* There's a bubble in the pipe until at least the first ACK. */
+       tp->app_limited = ~0U;
+
 
        /* Clean up fastopen related fields */
        tcp_free_fastopen_req(tp);
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
index 
29fba13849a79695b3f62a989b27157b57caedfb..13f3c6444efa63b63fe38bf4606c91fa962ec584
 100644
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -486,9 +486,6 @@ struct sock *tcp_create_openreq_child(const struct sock *sk,
        newsk->sk_txhash = treq->txhash;
        newtp->total_retrans = req->num_retrans;
 
-       /* There's a bubble in the pipe until at least the first ACK. */
-       newtp->app_limited = ~0U;
-
        tcp_init_xmit_timers(newsk);
        newtp->write_seq = newtp->pushed_seq = treq->snt_isn + 1;
 
-- 
2.20.1.321.g9e740568ce-goog

Reply via email to