diff options
author | Geliang Tang <geliangtang@gmail.com> | 2020-09-24 08:29:57 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-09-24 19:58:34 -0700 |
commit | 5c8c1640956e59797f838fb18495e3d3fb964205 (patch) | |
tree | 8279cc18cd89e3a121242ffa46aa9f0722b9772d /net/mptcp | |
parent | 7a7e52e38a40f4f6ce8f06da601556a7669cf999 (diff) | |
download | linux-5c8c1640956e59797f838fb18495e3d3fb964205.tar.bz2 |
mptcp: add mptcp_destroy_common helper
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>
Diffstat (limited to 'net/mptcp')
-rw-r--r-- | net/mptcp/protocol.c | 11 | ||||
-rw-r--r-- | net/mptcp/protocol.h | 1 | ||||
-rw-r--r-- | net/mptcp/subflow.c | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b53e55826975..34c037731f35 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -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); } diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index df6cc94df1f7..db1e5de2fee7 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -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) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index a1fefc965e17..ac2b19993f1a 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -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); } |