diff options
author | Denis V. Lunev <den@openvz.org> | 2007-12-11 07:19:17 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:57:14 -0500 |
commit | a0a53c8ba95451feef6c1975016f0a1eb3044ad4 (patch) | |
tree | 0b64ce018878cbaa0bf5cdfa308d4a7e71218914 /net/unix | |
parent | 27147c9e6e8316af91dea487aa2c14b18dcff4cf (diff) |
[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>
Diffstat (limited to 'net/unix')
-rw-r--r-- | net/unix/af_unix.c | 4 | ||||
-rw-r--r-- | net/unix/sysctl_net_unix.c | 12 |
2 files changed, 8 insertions, 8 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index b8a2189fb5c0..63a9239571a4 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -592,7 +592,7 @@ static struct sock * unix_create1(struct net *net, struct socket *sock) | |||
592 | &af_unix_sk_receive_queue_lock_key); | 592 | &af_unix_sk_receive_queue_lock_key); |
593 | 593 | ||
594 | sk->sk_write_space = unix_write_space; | 594 | sk->sk_write_space = unix_write_space; |
595 | sk->sk_max_ack_backlog = net->sysctl_unix_max_dgram_qlen; | 595 | sk->sk_max_ack_backlog = net->unx.sysctl_max_dgram_qlen; |
596 | sk->sk_destruct = unix_sock_destructor; | 596 | sk->sk_destruct = unix_sock_destructor; |
597 | u = unix_sk(sk); | 597 | u = unix_sk(sk); |
598 | u->dentry = NULL; | 598 | u->dentry = NULL; |
@@ -2138,7 +2138,7 @@ static int unix_net_init(struct net *net) | |||
2138 | { | 2138 | { |
2139 | int error = -ENOMEM; | 2139 | int error = -ENOMEM; |
2140 | 2140 | ||
2141 | net->sysctl_unix_max_dgram_qlen = 10; | 2141 | net->unx.sysctl_max_dgram_qlen = 10; |
2142 | if (unix_sysctl_register(net)) | 2142 | if (unix_sysctl_register(net)) |
2143 | goto out; | 2143 | goto out; |
2144 | 2144 | ||
diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c index 553ef6a487d0..77513d7e35f2 100644 --- a/net/unix/sysctl_net_unix.c +++ b/net/unix/sysctl_net_unix.c | |||
@@ -18,7 +18,7 @@ static ctl_table unix_table[] = { | |||
18 | { | 18 | { |
19 | .ctl_name = NET_UNIX_MAX_DGRAM_QLEN, | 19 | .ctl_name = NET_UNIX_MAX_DGRAM_QLEN, |
20 | .procname = "max_dgram_qlen", | 20 | .procname = "max_dgram_qlen", |
21 | .data = &init_net.sysctl_unix_max_dgram_qlen, | 21 | .data = &init_net.unx.sysctl_max_dgram_qlen, |
22 | .maxlen = sizeof(int), | 22 | .maxlen = sizeof(int), |
23 | .mode = 0644, | 23 | .mode = 0644, |
24 | .proc_handler = &proc_dointvec | 24 | .proc_handler = &proc_dointvec |
@@ -40,9 +40,9 @@ int unix_sysctl_register(struct net *net) | |||
40 | if (table == NULL) | 40 | if (table == NULL) |
41 | goto err_alloc; | 41 | goto err_alloc; |
42 | 42 | ||
43 | table[0].data = &net->sysctl_unix_max_dgram_qlen; | 43 | table[0].data = &net->unx.sysctl_max_dgram_qlen; |
44 | net->unix_ctl = register_net_sysctl_table(net, unix_path, table); | 44 | net->unx.ctl = register_net_sysctl_table(net, unix_path, table); |
45 | if (net->unix_ctl == NULL) | 45 | if (net->unx.ctl == NULL) |
46 | goto err_reg; | 46 | goto err_reg; |
47 | 47 | ||
48 | return 0; | 48 | return 0; |
@@ -57,8 +57,8 @@ void unix_sysctl_unregister(struct net *net) | |||
57 | { | 57 | { |
58 | struct ctl_table *table; | 58 | struct ctl_table *table; |
59 | 59 | ||
60 | table = net->unix_ctl->ctl_table_arg; | 60 | table = net->unx.ctl->ctl_table_arg; |
61 | unregister_sysctl_table(net->unix_ctl); | 61 | unregister_sysctl_table(net->unx.ctl); |
62 | kfree(table); | 62 | kfree(table); |
63 | } | 63 | } |
64 | 64 | ||