aboutsummaryrefslogtreecommitdiff
path: root/net/mptcp/protocol.c
diff options
context:
space:
mode:
authorGravatar Florian Westphal <fw@strlen.de> 2021-02-12 15:59:55 -0800
committerGravatar David S. Miller <davem@davemloft.net> 2021-02-12 16:31:45 -0800
commita141e02e393370e082b25636401c49978b61bfcf (patch)
treecb4f9c9b96b72fbab952086c4e9dc544dbb3f5fe /net/mptcp/protocol.c
parentmptcp: move pm netlink work into pm_netlink (diff)
downloadlinux-a141e02e393370e082b25636401c49978b61bfcf.tar.gz
linux-a141e02e393370e082b25636401c49978b61bfcf.tar.bz2
linux-a141e02e393370e082b25636401c49978b61bfcf.zip
mptcp: split __mptcp_close_ssk helper
Prepare for subflow close events: When mptcp connection is torn down its enough to send the mptcp socket close notification rather than a subflow close event for all of the subflows followed by the mptcp close event. This splits the helper: mptcp_close_ssk() will emit the close notification, __mptcp_close_ssk will not. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mptcp/protocol.c')
-rw-r--r--net/mptcp/protocol.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 93134b72490a..3fd8aef979a3 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2114,8 +2114,8 @@ static struct sock *mptcp_subflow_get_retrans(const struct mptcp_sock *msk)
* so we need to use tcp_close() after detaching them from the mptcp
* parent socket.
*/
-void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
- struct mptcp_subflow_context *subflow)
+static void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
+ struct mptcp_subflow_context *subflow)
{
list_del(&subflow->node);
@@ -2147,6 +2147,12 @@ void __mptcp_close_ssk(struct sock *sk, struct sock *ssk,
sock_put(ssk);
}
+void mptcp_close_ssk(struct sock *sk, struct sock *ssk,
+ struct mptcp_subflow_context *subflow)
+{
+ __mptcp_close_ssk(sk, ssk, subflow);
+}
+
static unsigned int mptcp_sync_mss(struct sock *sk, u32 pmtu)
{
return 0;
@@ -2164,7 +2170,7 @@ static void __mptcp_close_subflow(struct mptcp_sock *msk)
if (inet_sk_state_load(ssk) != TCP_CLOSE)
continue;
- __mptcp_close_ssk((struct sock *)msk, ssk, subflow);
+ mptcp_close_ssk((struct sock *)msk, ssk, subflow);
}
}