protocol.c (988998ac4bd9953c034d9522149047cf5782adc0) protocol.c (bcf3cf93f64597fd3ccdcf79000f064b0c7dc943)
1// SPDX-License-Identifier: GPL-2.0
2/* Multipath TCP
3 *
4 * Copyright (c) 2017 - 2019, Intel Corporation.
5 */
6
7#define pr_fmt(fmt) "MPTCP: " fmt
8

--- 2739 unchanged lines hidden (view full) ---

2748
2749 pr_debug("msk=%p", msk);
2750
2751 might_sleep();
2752
2753 /* join list will be eventually flushed (with rst) at sock lock release time*/
2754 list_splice_init(&msk->conn_list, &conn_list);
2755
1// SPDX-License-Identifier: GPL-2.0
2/* Multipath TCP
3 *
4 * Copyright (c) 2017 - 2019, Intel Corporation.
5 */
6
7#define pr_fmt(fmt) "MPTCP: " fmt
8

--- 2739 unchanged lines hidden (view full) ---

2748
2749 pr_debug("msk=%p", msk);
2750
2751 might_sleep();
2752
2753 /* join list will be eventually flushed (with rst) at sock lock release time*/
2754 list_splice_init(&msk->conn_list, &conn_list);
2755
2756 sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer);
2756 mptcp_stop_timer(sk);
2757 sk_stop_timer(sk, &sk->sk_timer);
2758 msk->pm.status = 0;
2759
2760 /* clears msk->subflow, allowing the following loop to close
2761 * even the initial subflow
2762 */
2763 mptcp_dispose_initial_subflow(msk);
2764 list_for_each_entry_safe(subflow, tmp, &conn_list, node) {

--- 91 unchanged lines hidden (view full) ---

2856 inet_sk_state_store(sk, TCP_CLOSE);
2857
2858 mptcp_for_each_subflow(msk, subflow) {
2859 struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
2860
2861 __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE);
2862 }
2863
2757 sk_stop_timer(sk, &sk->sk_timer);
2758 msk->pm.status = 0;
2759
2760 /* clears msk->subflow, allowing the following loop to close
2761 * even the initial subflow
2762 */
2763 mptcp_dispose_initial_subflow(msk);
2764 list_for_each_entry_safe(subflow, tmp, &conn_list, node) {

--- 91 unchanged lines hidden (view full) ---

2856 inet_sk_state_store(sk, TCP_CLOSE);
2857
2858 mptcp_for_each_subflow(msk, subflow) {
2859 struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
2860
2861 __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE);
2862 }
2863
2864 sk_stop_timer(sk, &msk->sk.icsk_retransmit_timer);
2864 mptcp_stop_timer(sk);
2865 sk_stop_timer(sk, &sk->sk_timer);
2866
2867 if (mptcp_sk(sk)->token)
2868 mptcp_event(MPTCP_EVENT_CLOSED, mptcp_sk(sk), NULL, GFP_KERNEL);
2869
2870 mptcp_destroy_common(msk);
2871 msk->last_snd = NULL;
2872 WRITE_ONCE(msk->flags, 0);

--- 938 unchanged lines hidden ---
2865 sk_stop_timer(sk, &sk->sk_timer);
2866
2867 if (mptcp_sk(sk)->token)
2868 mptcp_event(MPTCP_EVENT_CLOSED, mptcp_sk(sk), NULL, GFP_KERNEL);
2869
2870 mptcp_destroy_common(msk);
2871 msk->last_snd = NULL;
2872 WRITE_ONCE(msk->flags, 0);

--- 938 unchanged lines hidden ---