diff options
Diffstat (limited to 'net/mptcp/subflow.c')
| -rw-r--r-- | net/mptcp/subflow.c | 39 | 
1 files changed, 2 insertions, 37 deletions
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 9bf3c7bc1762..918c1a235790 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1226,7 +1226,7 @@ static void mptcp_subflow_fail(struct mptcp_sock *msk, struct sock *ssk)  	WRITE_ONCE(subflow->fail_tout, fail_tout);  	tcp_send_ack(ssk); -	mptcp_reset_timeout(msk, subflow->fail_tout); +	mptcp_reset_tout_timer(msk, subflow->fail_tout);  }  static bool subflow_check_data_avail(struct sock *ssk) @@ -1362,42 +1362,6 @@ void mptcp_space(const struct sock *ssk, int *space, int *full_space)  	*full_space = mptcp_win_from_space(sk, READ_ONCE(sk->sk_rcvbuf));  } -void __mptcp_error_report(struct sock *sk) -{ -	struct mptcp_subflow_context *subflow; -	struct mptcp_sock *msk = mptcp_sk(sk); - -	mptcp_for_each_subflow(msk, subflow) { -		struct sock *ssk = mptcp_subflow_tcp_sock(subflow); -		int err = sock_error(ssk); -		int ssk_state; - -		if (!err) -			continue; - -		/* only propagate errors on fallen-back sockets or -		 * on MPC connect -		 */ -		if (sk->sk_state != TCP_SYN_SENT && !__mptcp_check_fallback(msk)) -			continue; - -		/* We need to propagate only transition to CLOSE state. -		 * Orphaned socket will see such state change via -		 * subflow_sched_work_if_closed() and that path will properly -		 * destroy the msk as needed. -		 */ -		ssk_state = inet_sk_state_load(ssk); -		if (ssk_state == TCP_CLOSE && !sock_flag(sk, SOCK_DEAD)) -			inet_sk_state_store(sk, ssk_state); -		WRITE_ONCE(sk->sk_err, -err); - -		/* This barrier is coupled with smp_rmb() in mptcp_poll() */ -		smp_wmb(); -		sk_error_report(sk); -		break; -	} -} -  static void subflow_error_report(struct sock *ssk)  {  	struct sock *sk = mptcp_subflow_ctx(ssk)->conn; @@ -1588,6 +1552,7 @@ int __mptcp_subflow_connect(struct sock *sk, const struct mptcp_addr_info *loc,  	mptcp_sock_graft(ssk, sk->sk_socket);  	iput(SOCK_INODE(sf));  	WRITE_ONCE(msk->allow_infinite_fallback, false); +	mptcp_stop_tout_timer(sk);  	return 0;  failed_unlink:  |