On Fri, 29 May 2020, Paolo Abeni wrote:

Currently unblocking connect() on MPTCP sockets fails frequently.
If mptcp_stream_connect() is invoked to complete a previously
attempted unblocking connection, it will still try to create
the first subflow via __mptcp_socket_create(). If the 3whs is
completed and the 'can_ack' flag is already set, the latter
will fail with -EINVAL.

This change addresses the issue checking for pending connect and
delegating the completion to the first subflow. Additionally
do msk addresses and sk_state changes only when needed.

Fixes: 2303f994b3e1 ("mptcp: Associate MPTCP context with TCP socket")
Signed-off-by: Paolo Abeni <[email protected]>
---
net/mptcp/protocol.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)


Reviewed-by: Mat Martineau <[email protected]>

--
Mat Martineau
Intel

Reply via email to