diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 95007e433109e..c0cef07f43827 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1049,6 +1049,10 @@ void mptcp_finish_connect(struct sock *ssk) WRITE_ONCE(msk->write_seq, subflow->idsn + 1); WRITE_ONCE(msk->ack_seq, ack_seq); WRITE_ONCE(msk->can_ack, 1); + if (inet_sk_state_load(sk) != TCP_ESTABLISHED) { + inet_sk_state_store(sk, TCP_ESTABLISHED); + sk->sk_state_change(sk); + } } static void mptcp_sock_graft(struct sock *sk, struct socket *parent)