]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mptcp: implement mptcp_pm_connection_closed
authorGeliang Tang <tanggeliang@kylinos.cn>
Mon, 21 Oct 2024 15:14:05 +0000 (17:14 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 28 Oct 2024 22:55:45 +0000 (15:55 -0700)
The MPTCP path manager event handler mptcp_pm_connection_closed
interface has been added in the commit 1b1c7a0ef7f3 ("mptcp: Add path
manager interface") but it was an empty function from then on.

With such name, it sounds good to invoke mptcp_event with the
MPTCP_EVENT_CLOSED event type from it. It also removes a bit of
duplicated code.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20241021-net-next-mptcp-misc-6-13-v1-3-1ef02746504a@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/pm.c
net/mptcp/protocol.c

index 620264c75dc2e3b79927c5db44ec6ce84d83590b..16c336c519403d0147c5a3ffe301d0238c5b250a 100644 (file)
@@ -154,6 +154,9 @@ void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk)
 void mptcp_pm_connection_closed(struct mptcp_sock *msk)
 {
        pr_debug("msk=%p\n", msk);
+
+       if (msk->token)
+               mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL);
 }
 
 void mptcp_pm_subflow_established(struct mptcp_sock *msk)
index a6c9661a4c45a00e982d0f68f21621c3cf33469b..e978e05ec8d1357c4d40cd9830f7dd82a68cf4bf 100644 (file)
@@ -3139,8 +3139,7 @@ cleanup:
 
        sock_hold(sk);
        pr_debug("msk=%p state=%d\n", sk, sk->sk_state);
-       if (msk->token)
-               mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL);
+       mptcp_pm_connection_closed(msk);
 
        if (sk->sk_state == TCP_CLOSE) {
                __mptcp_destroy_sock(sk);
@@ -3206,8 +3205,7 @@ static int mptcp_disconnect(struct sock *sk, int flags)
        mptcp_stop_rtx_timer(sk);
        mptcp_stop_tout_timer(sk);
 
-       if (msk->token)
-               mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL);
+       mptcp_pm_connection_closed(msk);
 
        /* msk->subflow is still intact, the following will not free the first
         * subflow