summaryrefslogtreecommitdiffstats
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2008-11-17 11:38:49 +0100
committerDavid S. Miller <davem@davemloft.net>2008-11-17 11:38:49 +0100
commita8076d8db98de6da61394b2e942320e4612643ac (patch)
treec1c0e52d635197e86b017fe09850a0f6ad261785 /net/unix/af_unix.c
parentnet: af_unix can make unix_nr_socks visbile in /proc (diff)
downloadlinux-a8076d8db98de6da61394b2e942320e4612643ac.tar.xz
linux-a8076d8db98de6da61394b2e942320e4612643ac.zip
net: af_unix should update its inuse counter
This patch is a preparation to namespace conversion of /proc/net/protocols In order to have relevant information for UNIX protocol, 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>
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r--net/unix/af_unix.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index a1eb5969712c..f2cf3f583f62 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -361,6 +361,7 @@ static void unix_sock_destructor(struct sock *sk)
unix_release_addr(u->addr);
atomic_dec(&unix_nr_socks);
+ sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
#ifdef UNIX_REFCNT_DEBUG
printk(KERN_DEBUG "UNIX %p is destroyed, %d are still alive.\n", sk,
atomic_read(&unix_nr_socks));
@@ -612,6 +613,9 @@ static struct sock *unix_create1(struct net *net, struct socket *sock)
out:
if (sk == NULL)
atomic_dec(&unix_nr_socks);
+ else
+ sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
+
return sk;
}