diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 3b217c428d906f41d77695e87a1ccec4a6dc046a..7c652f2a0061dbfb02618b204058abe67db06ef1 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3293,7 +3293,7 @@ static int do_tcp_setsockopt(struct sock *sk, int level, int optname, case TCP_REPAIR_OPTIONS: if (!tp->repair) err = -EINVAL; - else if (sk->sk_state == TCP_ESTABLISHED) + else if (sk->sk_state == TCP_ESTABLISHED && !tp->bytes_sent) err = tcp_repair_options_est(sk, optval, optlen); else err = -EPERM;