net: af_packet should update its inuse counter
Eric Dumazet [Wed, 19 Nov 2008 22:25:35 +0000 (14:25 -0800)]
This patch is a preparation to namespace conversion of /proc/net/protocols

In order to have relevant information for PACKET protocols, we should use
sock_prot_inuse_add() to update a (percpu and pernamespace) counter of
inuse sockets.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/packet/af_packet.c

index c718e7e..b4870a3 100644 (file)
@@ -910,6 +910,7 @@ static int packet_release(struct socket *sock)
        skb_queue_purge(&sk->sk_receive_queue);
        sk_refcnt_debug_release(sk);
 
+       sock_prot_inuse_add(net, sk->sk_prot, -1);
        sock_put(sk);
        return 0;
 }
@@ -1085,6 +1086,7 @@ static int packet_create(struct net *net, struct socket *sock, int protocol)
        write_lock_bh(&net->packet.sklist_lock);
        sk_add_node(sk, &net->packet.sklist);
        write_unlock_bh(&net->packet.sklist_lock);
+       sock_prot_inuse_add(net, &packet_proto, 1);
        return(0);
 out:
        return err;