net: add netns refcount tracker to struct sock
Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
9ba74e6c9e
commit
ffa84b5ffb
@@ -1983,7 +1983,7 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
|
||||
sock_lock_init(sk);
|
||||
sk->sk_net_refcnt = kern ? 0 : 1;
|
||||
if (likely(sk->sk_net_refcnt)) {
|
||||
get_net(net);
|
||||
get_net_track(net, &sk->ns_tracker, priority);
|
||||
sock_inuse_add(net, 1);
|
||||
}
|
||||
|
||||
@@ -2039,7 +2039,7 @@ static void __sk_destruct(struct rcu_head *head)
|
||||
put_pid(sk->sk_peer_pid);
|
||||
|
||||
if (likely(sk->sk_net_refcnt))
|
||||
put_net(sock_net(sk));
|
||||
put_net_track(sock_net(sk), &sk->ns_tracker);
|
||||
sk_prot_free(sk->sk_prot_creator, sk);
|
||||
}
|
||||
|
||||
@@ -2126,7 +2126,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
|
||||
|
||||
/* SANITY */
|
||||
if (likely(newsk->sk_net_refcnt)) {
|
||||
get_net(sock_net(newsk));
|
||||
get_net_track(sock_net(newsk), &newsk->ns_tracker, priority);
|
||||
sock_inuse_add(sock_net(newsk), 1);
|
||||
}
|
||||
sk_node_init(&newsk->sk_node);
|
||||
|
||||
Reference in New Issue
Block a user