mptcp: add mptcp_destroy_common helper
authorGeliang Tang <geliangtang@gmail.com>
Thu, 24 Sep 2020 00:29:57 +0000 (08:29 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Sep 2020 02:58:34 +0000 (19:58 -0700)
This patch added a new helper named mptcp_destroy_common containing the
shared code between mptcp_destroy() and mptcp_sock_destruct().

Suggested-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mptcp/protocol.c
net/mptcp/protocol.h
net/mptcp/subflow.c

index b53e558..34c0377 100644 (file)
@@ -2128,16 +2128,21 @@ static struct sock *mptcp_accept(struct sock *sk, int flags, int *err,
        return newsk;
 }
 
+void mptcp_destroy_common(struct mptcp_sock *msk)
+{
+       skb_rbtree_purge(&msk->out_of_order_queue);
+       mptcp_token_destroy(msk);
+       mptcp_pm_free_anno_list(msk);
+}
+
 static void mptcp_destroy(struct sock *sk)
 {
        struct mptcp_sock *msk = mptcp_sk(sk);
 
-       skb_rbtree_purge(&msk->out_of_order_queue);
-       mptcp_token_destroy(msk);
        if (msk->cached_ext)
                __skb_ext_put(msk->cached_ext);
 
-       mptcp_pm_free_anno_list(msk);
+       mptcp_destroy_common(msk);
        sk_sockets_allocated_dec(sk);
 }
 
index df6cc94..db1e5de 100644 (file)
@@ -408,6 +408,7 @@ bool mptcp_finish_join(struct sock *sk);
 void mptcp_data_acked(struct sock *sk);
 void mptcp_subflow_eof(struct sock *sk);
 bool mptcp_update_rcv_data_fin(struct mptcp_sock *msk, u64 data_fin_seq);
+void mptcp_destroy_common(struct mptcp_sock *msk);
 
 void __init mptcp_token_init(void);
 static inline void mptcp_token_init_request(struct request_sock *req)
index a1fefc9..ac2b199 100644 (file)
@@ -435,9 +435,7 @@ static void mptcp_sock_destruct(struct sock *sk)
                sock_orphan(sk);
        }
 
-       skb_rbtree_purge(&mptcp_sk(sk)->out_of_order_queue);
-       mptcp_token_destroy(mptcp_sk(sk));
-       mptcp_pm_free_anno_list(mptcp_sk(sk));
+       mptcp_destroy_common(mptcp_sk(sk));
        inet_sock_destruct(sk);
 }