Skip to content

Commit

Permalink
[PATCH] sysctl: make sure that /proc/sys/net/ipv4 appears before per-…
Browse files Browse the repository at this point in the history
…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>
  • Loading branch information
Al Viro committed Jul 27, 2008
1 parent f7e6ced commit bd7b153
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
2 changes: 2 additions & 0 deletions include/net/ip.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,8 @@ extern int sysctl_ip_dynaddr;

extern void ipfrag_init(void);

extern void ip_static_sysctl_init(void);

#ifdef CONFIG_INET
#include <net/dst.h>

Expand Down
4 changes: 4 additions & 0 deletions net/ipv4/af_inet.c
Original file line number Diff line number Diff line change
Expand Up @@ -1439,6 +1439,10 @@ static int __init inet_init(void)

(void)sock_register(&inet_family_ops);

#ifdef CONFIG_SYSCTL
ip_static_sysctl_init();
#endif

/*
* Add all the base protocols.
*/
Expand Down
7 changes: 7 additions & 0 deletions net/ipv4/sysctl_net_ipv4.c
Original file line number Diff line number Diff line change
Expand Up @@ -882,4 +882,11 @@ static __init int sysctl_ipv4_init(void)
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);

0 comments on commit bd7b153

Please sign in to comment.