net: kernel socket should be released in init_net namespace
[firefly-linux-kernel-4.4.55.git] / net / core / sock.c
index 63d871a91b5c1d37c6f81e35617390f0cc8251dd..d9f9e48253627efc3d45b45802fc39aa17162e4e 100644 (file)
@@ -1454,8 +1454,8 @@ void sk_release_kernel(struct sock *sk)
                return;
 
        sock_hold(sk);
-       sock_release(sk->sk_socket);
        sock_net_set(sk, get_net(&init_net));
+       sock_release(sk->sk_socket);
        sock_put(sk);
 }
 EXPORT_SYMBOL(sk_release_kernel);
@@ -1661,19 +1661,6 @@ void sock_efree(struct sk_buff *skb)
 }
 EXPORT_SYMBOL(sock_efree);
 
-#ifdef CONFIG_INET
-void sock_edemux(struct sk_buff *skb)
-{
-       struct sock *sk = skb->sk;
-
-       if (sk->sk_state == TCP_TIME_WAIT)
-               inet_twsk_put(inet_twsk(sk));
-       else
-               sock_put(sk);
-}
-EXPORT_SYMBOL(sock_edemux);
-#endif
-
 kuid_t sock_i_uid(struct sock *sk)
 {
        kuid_t uid;