diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2012-04-19 09:20:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-20 21:21:16 -0400 |
commit | 2ca794e5e86c800d7f98c4ebb8bd325099c0afe8 (patch) | |
tree | f0ae38f58dec5a07ae57e31aca4943c85ffe9d65 /include/net/net_namespace.h | |
parent | bc8a36942a5c05896d373a8e98d5e6b14514b4bc (diff) |
net sysctl: Initialize the network sysctls sooner to avoid problems.
If the netfilter code is modified to use register_net_sysctl_table the
kernel fails to boot because the per net sysctl infrasturce is not setup
soon enough. So to avoid races call net_sysctl_init from sock_init().
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/net_namespace.h')
-rw-r--r-- | include/net/net_namespace.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 446245e3adea..767dcd401e57 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -283,6 +283,11 @@ struct ctl_path; | |||
283 | struct ctl_table; | 283 | struct ctl_table; |
284 | struct ctl_table_header; | 284 | struct ctl_table_header; |
285 | 285 | ||
286 | #ifdef CONFIG_SYSCTL | ||
287 | extern int net_sysctl_init(void); | ||
288 | #else | ||
289 | static inline int net_sysctl_init(void) { return 0; } | ||
290 | #endif | ||
286 | extern struct ctl_table_header *register_net_sysctl_table(struct net *net, | 291 | extern struct ctl_table_header *register_net_sysctl_table(struct net *net, |
287 | const struct ctl_path *path, struct ctl_table *table); | 292 | const struct ctl_path *path, struct ctl_table *table); |
288 | extern struct ctl_table_header *register_net_sysctl_rotable( | 293 | extern struct ctl_table_header *register_net_sysctl_rotable( |