VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / net / unix / af_unix.c
index 3493439..08432ce 100644 (file)
 #include <linux/mount.h>
 #include <net/checksum.h>
 #include <linux/security.h>
+#include <linux/vs_context.h>
+#include <linux/vs_network.h>
+#include <linux/vs_limit.h>
 
 int sysctl_unix_max_dgram_qlen = 10;
 
@@ -405,6 +408,7 @@ static int unix_release_sock (struct sock *sk, int embrion)
                mntput(mnt);
        }
 
+       vx_sock_dec(sk);
        clr_vx_info(&sk->sk_vx_info);
        clr_nx_info(&sk->sk_nx_info);
        sock_put(sk);
@@ -562,8 +566,9 @@ static struct sock * unix_create1(struct socket *sock)
        sk_set_owner(sk, THIS_MODULE);
 
        set_vx_info(&sk->sk_vx_info, current->vx_info);
-       set_nx_info(&sk->sk_nx_info, current->nx_info);
        sk->sk_xid = vx_current_xid();
+       vx_sock_inc(sk);
+       set_nx_info(&sk->sk_nx_info, current->nx_info);
 
        sk->sk_write_space      = unix_write_space;
        sk->sk_max_ack_backlog  = sysctl_unix_max_dgram_qlen;
@@ -2042,7 +2047,7 @@ static int __init af_unix_init(void)
         /* allocate our sock slab cache */
         unix_sk_cachep = kmem_cache_create("unix_sock",
                                           sizeof(struct unix_sock), 0,
-                                          SLAB_HWCACHE_ALIGN, 0, 0);
+                                          SLAB_HWCACHE_ALIGN, NULL, NULL);
         if (!unix_sk_cachep)
                 printk(KERN_CRIT
                         "af_unix_init: Cannot create unix_sock SLAB cache!\n");