diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 95007e433109ec5b7c11fdf5405046d2d90097db..c0cef07f43827e4fd9e0e5c78d5d038f79f2e776 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)