diff mbox series

[2/3] mptcp: skip MPTCP_EVENT_SUB_CLOSED event when mptcp socket isn't established

Message ID 20210202174754.6861-3-fw@strlen.de
State Accepted, archived
Commit 51e4bae2c6c9b93cd6d43621ca5eccaf8c6e97b2
Delegated to: Matthieu Baerts
Headers show
Series mptcp: netlink event fixes | expand

Commit Message

Florian Westphal Feb. 2, 2021, 5:47 p.m. UTC
A CLOSE event will be sent when the logical mptcp socket is closing.
Thus there is no need to generate individual subflow close events
if the mptcp socket isn't established anymore.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/mptcp/protocol.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index b5ba832ca58b..24eb42a60844 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2150,7 +2150,8 @@  static void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
 void mptcp_close_ssk(struct sock *sk, struct sock *ssk,
 		     struct mptcp_subflow_context *subflow)
 {
-	mptcp_event(MPTCP_EVENT_SUB_CLOSED, mptcp_sk(sk), ssk, GFP_KERNEL);
+	if (sk->sk_state == TCP_ESTABLISHED)
+		mptcp_event(MPTCP_EVENT_SUB_CLOSED, mptcp_sk(sk), ssk, GFP_KERNEL);
 	__mptcp_close_ssk(sk, ssk, subflow);
 }