af_unix: fix unix_dgram_poll() behavior for EPOLLOUT event
[linux-3.10.git] / net / unix / sysctl_net_unix.c
index 553ef6a..397cffe 100644 (file)
  */
 
 #include <linux/mm.h>
+#include <linux/slab.h>
 #include <linux/sysctl.h>
 
 #include <net/af_unix.h>
 
 static ctl_table unix_table[] = {
        {
-               .ctl_name       = NET_UNIX_MAX_DGRAM_QLEN,
                .procname       = "max_dgram_qlen",
-               .data           = &init_net.sysctl_unix_max_dgram_qlen,
+               .data           = &init_net.unx.sysctl_max_dgram_qlen,
                .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = &proc_dointvec
+               .proc_handler   = proc_dointvec
        },
-       { .ctl_name = 0 }
+       { }
 };
 
 static struct ctl_path unix_path[] = {
-       { .procname = "net", .ctl_name = CTL_NET, },
-       { .procname = "unix", .ctl_name = NET_UNIX, },
+       { .procname = "net", },
+       { .procname = "unix", },
        { },
 };
 
-int unix_sysctl_register(struct net *net)
+int __net_init unix_sysctl_register(struct net *net)
 {
        struct ctl_table *table;
 
@@ -40,9 +40,9 @@ int unix_sysctl_register(struct net *net)
        if (table == NULL)
                goto err_alloc;
 
-       table[0].data = &net->sysctl_unix_max_dgram_qlen;
-       net->unix_ctl = register_net_sysctl_table(net, unix_path, table);
-       if (net->unix_ctl == NULL)
+       table[0].data = &net->unx.sysctl_max_dgram_qlen;
+       net->unx.ctl = register_net_sysctl_table(net, unix_path, table);
+       if (net->unx.ctl == NULL)
                goto err_reg;
 
        return 0;
@@ -57,8 +57,7 @@ void unix_sysctl_unregister(struct net *net)
 {
        struct ctl_table *table;
 
-       table = net->unix_ctl->ctl_table_arg;
-       unregister_sysctl_table(net->unix_ctl);
+       table = net->unx.ctl->ctl_table_arg;
+       unregister_sysctl_table(net->unx.ctl);
        kfree(table);
 }
-