[NETNS]: struct net content re-work (v3) Recently David Miller and Herbert Xu pointed out that struct net becomes overbloated and un-maintainable. There are two solutions: - provide a pointer to a network subsystem definition from struct net. This costs an additional dereferrence - place sub-system definition into the structure itself. This will speedup run-time access at the cost of recompilation time The second approach looks better for us. Other sub-systems will follow. Signed-off-by: Denis V. Lunev <den@openvz.org> Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index b8a2189..63a9239 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c
@@ -592,7 +592,7 @@ &af_unix_sk_receive_queue_lock_key); sk->sk_write_space = unix_write_space; - sk->sk_max_ack_backlog = net->sysctl_unix_max_dgram_qlen; + sk->sk_max_ack_backlog = net->unx.sysctl_max_dgram_qlen; sk->sk_destruct = unix_sock_destructor; u = unix_sk(sk); u->dentry = NULL; @@ -2138,7 +2138,7 @@ { int error = -ENOMEM; - net->sysctl_unix_max_dgram_qlen = 10; + net->unx.sysctl_max_dgram_qlen = 10; if (unix_sysctl_register(net)) goto out;
diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c index 553ef6a..77513d7 100644 --- a/net/unix/sysctl_net_unix.c +++ b/net/unix/sysctl_net_unix.c
@@ -18,7 +18,7 @@ { .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 @@ -40,9 +40,9 @@ 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,8 @@ { 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); }