]> git.baikalelectronics.ru Git - kernel.git/commitdiff
Revert "net: kernel socket should be released in init_net namespace"
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 3 May 2015 00:04:28 +0000 (08:04 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 May 2015 04:13:16 +0000 (00:13 -0400)
This reverts commit c35d8a99f148f5699cf7f3eb6301f1bfd0370188.

That patch is solving a non-existant problem while creating a
real problem.  Just because a socket is allocated in the init
name space doesn't mean that it gets hashed in the init name space.

When we unhash it the name space must be the same as the one
we had when we hashed it.  So this patch is completely bogus
and causes socket leaks.

Reported-by: Andrey Wagin <avagin@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock.c

index e891bcf325ca759c9b7498f29ec76aa946198d5e..292f42228bfb361b5748998bbcc538b1e16a2f22 100644 (file)
@@ -1474,8 +1474,8 @@ void sk_release_kernel(struct sock *sk)
                return;
 
        sock_hold(sk);
-       sock_net_set(sk, get_net(&init_net));
        sock_release(sk->sk_socket);
+       sock_net_set(sk, get_net(&init_net));
        sock_put(sk);
 }
 EXPORT_SYMBOL(sk_release_kernel);