net: Move all of the network sysctls without a namespace into init_net.
This makes it clearer which sysctls are relative to your current network namespace. This makes it a little less error prone by not exposing sysctls for the initial network namespace in other namespaces. This is the same way we handle all of our other network interfaces to userspace and I can't honestly remember why we didn't do this for sysctls right from the start. 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>
This commit is contained in:

committed by
David S. Miller

parent
4344475797
commit
5dd3df105b
@@ -236,7 +236,7 @@ static void dn_dev_sysctl_register(struct net_device *dev, struct dn_dev_parms *
|
||||
|
||||
t->dn_dev_vars[0].extra1 = (void *)dev;
|
||||
|
||||
t->sysctl_header = register_sysctl_paths(dn_ctl_path, t->dn_dev_vars);
|
||||
t->sysctl_header = register_net_sysctl_table(&init_net, dn_ctl_path, t->dn_dev_vars);
|
||||
if (t->sysctl_header == NULL)
|
||||
kfree(t);
|
||||
else
|
||||
@@ -248,7 +248,7 @@ static void dn_dev_sysctl_unregister(struct dn_dev_parms *parms)
|
||||
if (parms->sysctl) {
|
||||
struct dn_dev_sysctl_table *t = parms->sysctl;
|
||||
parms->sysctl = NULL;
|
||||
unregister_sysctl_table(t->sysctl_header);
|
||||
unregister_net_sysctl_table(t->sysctl_header);
|
||||
kfree(t);
|
||||
}
|
||||
}
|
||||
|
@@ -359,12 +359,12 @@ static struct ctl_path dn_path[] = {
|
||||
|
||||
void dn_register_sysctl(void)
|
||||
{
|
||||
dn_table_header = register_sysctl_paths(dn_path, dn_table);
|
||||
dn_table_header = register_net_sysctl_table(&init_net, dn_path, dn_table);
|
||||
}
|
||||
|
||||
void dn_unregister_sysctl(void)
|
||||
{
|
||||
unregister_sysctl_table(dn_table_header);
|
||||
unregister_net_sysctl_table(dn_table_header);
|
||||
}
|
||||
|
||||
#else /* CONFIG_SYSCTL */
|
||||
|
Reference in New Issue
Block a user