Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

Al Viro bd7b1533 f7e6ced4

+13
+2
include/net/ip.h
··· 188 188 189 189 extern void ipfrag_init(void); 190 190 191 + extern void ip_static_sysctl_init(void); 192 + 191 193 #ifdef CONFIG_INET 192 194 #include <net/dst.h> 193 195
+4
net/ipv4/af_inet.c
··· 1439 1439 1440 1440 (void)sock_register(&inet_family_ops); 1441 1441 1442 + #ifdef CONFIG_SYSCTL 1443 + ip_static_sysctl_init(); 1444 + #endif 1445 + 1442 1446 /* 1443 1447 * Add all the base protocols. 1444 1448 */
+7
net/ipv4/sysctl_net_ipv4.c
··· 882 882 return 0; 883 883 } 884 884 885 + /* set enough of tree skeleton to get rid of ordering problems */ 886 + void __init ip_static_sysctl_init(void) 887 + { 888 + static ctl_table table[1]; 889 + register_sysctl_paths(net_ipv4_ctl_path, table); 890 + } 891 + 885 892 __initcall(sysctl_ipv4_init);