diff options
author | Paolo Abeni <pabeni@redhat.com> | 2020-05-29 17:43:29 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-30 21:39:13 -0700 |
commit | 41be81a8d3d09acb9033799938306349328861f9 (patch) | |
tree | 20cb78f94610de7a0a694a4f87436d9db51a5f9b /kernel/gcov/gcc_base.c | |
parent | 05aa69e5cba61d8900970a364825f854401694ec (diff) |
mptcp: fix unblocking connect()
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 <pabeni@redhat.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/gcov/gcc_base.c')
0 files changed, 0 insertions, 0 deletions