OSDN Git Service

inet_connection_sock: factor out destroy helper.
authorPaolo Abeni <pabeni@redhat.com>
Fri, 15 May 2020 17:22:16 +0000 (19:22 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 May 2020 19:30:13 +0000 (12:30 -0700)
Move the steps to prepare an inet_connection_sock for
forced disposal inside a separate helper. No functional
changes inteded, this will just simplify the next patch.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Christoph Paasch <cpaasch@apple.com>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_connection_sock.h
net/ipv4/inet_connection_sock.c

index a3f076b..2f1f8c3 100644 (file)
@@ -287,6 +287,14 @@ static inline int inet_csk_reqsk_queue_is_full(const struct sock *sk)
 void inet_csk_reqsk_queue_drop(struct sock *sk, struct request_sock *req);
 void inet_csk_reqsk_queue_drop_and_put(struct sock *sk, struct request_sock *req);
 
+static inline void inet_csk_prepare_for_destroy_sock(struct sock *sk)
+{
+       /* The below has to be done to allow calling inet_csk_destroy_sock */
+       sock_set_flag(sk, SOCK_DEAD);
+       percpu_counter_inc(sk->sk_prot->orphan_count);
+       inet_sk(sk)->inet_num = 0;
+}
+
 void inet_csk_destroy_sock(struct sock *sk);
 void inet_csk_prepare_forced_close(struct sock *sk);
 
index 5f34eb9..d6faf37 100644 (file)
@@ -896,11 +896,7 @@ void inet_csk_prepare_forced_close(struct sock *sk)
        /* sk_clone_lock locked the socket and set refcnt to 2 */
        bh_unlock_sock(sk);
        sock_put(sk);
-
-       /* The below has to be done to allow calling inet_csk_destroy_sock */
-       sock_set_flag(sk, SOCK_DEAD);
-       percpu_counter_inc(sk->sk_prot->orphan_count);
-       inet_sk(sk)->inet_num = 0;
+       inet_csk_prepare_for_destroy_sock(sk);
 }
 EXPORT_SYMBOL(inet_csk_prepare_forced_close);