[NETNS]: Add netns refcnt debug for kernel sockets.

Protocol control sockets and netlink kernel sockets should not prevent the
namespace stop request. They are initialized and disposed in a special way by
sk_change_net/sk_release_kernel.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Denis V. Lunev 2008-04-16 01:59:46 -07:00 committed by David S. Miller
parent 5d1e4468a7
commit 65a18ec58e
2 changed files with 2 additions and 1 deletions

View File

@ -1314,7 +1314,7 @@ void sock_net_set(struct sock *sk, struct net *net)
static inline void sk_change_net(struct sock *sk, struct net *net) static inline void sk_change_net(struct sock *sk, struct net *net)
{ {
put_net(sock_net(sk)); put_net(sock_net(sk));
sock_net_set(sk, net); sock_net_set(sk, hold_net(net));
} }
extern void sock_enable_timestamp(struct sock *sk); extern void sock_enable_timestamp(struct sock *sk);

View File

@ -1001,6 +1001,7 @@ void sk_release_kernel(struct sock *sk)
sock_hold(sk); sock_hold(sk);
sock_release(sk->sk_socket); sock_release(sk->sk_socket);
release_net(sock_net(sk));
sock_net_set(sk, get_net(&init_net)); sock_net_set(sk, get_net(&init_net));
sock_put(sk); sock_put(sk);
} }