Commit bd7b1533 authored by Al Viro's avatar Al Viro

[PATCH] sysctl: make sure that /proc/sys/net/ipv4 appears before per-ns ones

Massage ipv4 initialization - make sure that net.ipv4 appears as
non-per-net-namespace before it shows up in per-net-namespace sysctls.
That's the only change outside of sysctl.c needed to get sane ordering
rules and data structures for sysctls (esp. for procfs side of that
mess).
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent f7e6ced4
...@@ -188,6 +188,8 @@ extern int sysctl_ip_dynaddr; ...@@ -188,6 +188,8 @@ extern int sysctl_ip_dynaddr;
extern void ipfrag_init(void); extern void ipfrag_init(void);
extern void ip_static_sysctl_init(void);
#ifdef CONFIG_INET #ifdef CONFIG_INET
#include <net/dst.h> #include <net/dst.h>
......
...@@ -1439,6 +1439,10 @@ static int __init inet_init(void) ...@@ -1439,6 +1439,10 @@ static int __init inet_init(void)
(void)sock_register(&inet_family_ops); (void)sock_register(&inet_family_ops);
#ifdef CONFIG_SYSCTL
ip_static_sysctl_init();
#endif
/* /*
* Add all the base protocols. * Add all the base protocols.
*/ */
......
...@@ -882,4 +882,11 @@ static __init int sysctl_ipv4_init(void) ...@@ -882,4 +882,11 @@ static __init int sysctl_ipv4_init(void)
return 0; return 0;
} }
/* set enough of tree skeleton to get rid of ordering problems */
void __init ip_static_sysctl_init(void)
{
static ctl_table table[1];
register_sysctl_paths(net_ipv4_ctl_path, table);
}
__initcall(sysctl_ipv4_init); __initcall(sysctl_ipv4_init);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment