[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: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
f7e6ced406
commit
bd7b1533cd
3 changed files with 13 additions and 0 deletions
|
@ -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)
|
||||||
|
|
||||||
(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)
|
||||||
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);
|
||||||
|
|
Loading…
Reference in a new issue