diff options
Diffstat (limited to 'net/mptcp/protocol.c')
| -rw-r--r-- | net/mptcp/protocol.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 06c5872e3b00..5181fb91595b 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2365,8 +2365,12 @@ static void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,  		mptcp_subflow_drop_ctx(ssk);  	} else {  		/* otherwise tcp will dispose of the ssk and subflow ctx */ -		if (ssk->sk_state == TCP_LISTEN) +		if (ssk->sk_state == TCP_LISTEN) { +			tcp_set_state(ssk, TCP_CLOSE); +			mptcp_subflow_queue_clean(sk, ssk); +			inet_csk_listen_stop(ssk);  			mptcp_event_pm_listener(ssk, MPTCP_EVENT_LISTENER_CLOSED); +		}  		__tcp_close(ssk, 0);  | 
