diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index e7ac3555d7982faaf35bab29040da1eb07d9f3b4..f009d78460b4e65e0698a4eb89bd4d1193e28b3e 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3295,7 +3295,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;