diff options
Diffstat (limited to 'net/mptcp/subflow.c')
| -rw-r--r-- | net/mptcp/subflow.c | 28 | 
1 files changed, 1 insertions, 27 deletions
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index ba065b66551a..4688daa6b38b 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -815,38 +815,12 @@ create_child:  		ctx->setsockopt_seq = listener->setsockopt_seq;  		if (ctx->mp_capable) { -			ctx->conn = mptcp_sk_clone(listener->conn, &mp_opt, req); +			ctx->conn = mptcp_sk_clone_init(listener->conn, &mp_opt, child, req);  			if (!ctx->conn)  				goto fallback;  			owner = mptcp_sk(ctx->conn); - -			/* this can't race with mptcp_close(), as the msk is -			 * not yet exposted to user-space -			 */ -			inet_sk_state_store(ctx->conn, TCP_ESTABLISHED); - -			/* record the newly created socket as the first msk -			 * subflow, but don't link it yet into conn_list -			 */ -			WRITE_ONCE(owner->first, child); - -			/* new mpc subflow takes ownership of the newly -			 * created mptcp socket -			 */ -			owner->setsockopt_seq = ctx->setsockopt_seq;  			mptcp_pm_new_connection(owner, child, 1); -			mptcp_token_accept(subflow_req, owner); - -			/* set msk addresses early to ensure mptcp_pm_get_local_id() -			 * uses the correct data -			 */ -			mptcp_copy_inaddrs(ctx->conn, child); -			mptcp_propagate_sndbuf(ctx->conn, child); - -			mptcp_rcv_space_init(owner, child); -			list_add(&ctx->node, &owner->conn_list); -			sock_hold(child);  			/* with OoO packets we can reach here without ingress  			 * mpc option  | 
