Skip to content

Commit

Permalink
[NETNS][IPV6]: Make the ipv6 sysctl to be a netns subsystem.
Browse files Browse the repository at this point in the history
The initialization of the sysctl for the ipv6 protocol is changed to a
network namespace subsystem. That means when a new network namespace
is created the initialization function for the sysctl will be called.

That do not change the behavior of the sysctl in case of the kernel
with the network namespace disabled.

Signed-off-by: Daniel Lezcano <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Daniel Lezcano authored and davem330 committed Jan 28, 2008
1 parent b0f159d commit 89918fc
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions net/ipv6/sysctl_net_ipv6.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,18 +91,33 @@ EXPORT_SYMBOL_GPL(net_ipv6_ctl_path);

static struct ctl_table_header *ipv6_sysctl_header;

int ipv6_sysctl_register(void)
static int ipv6_sysctl_net_init(struct net *net)
{
ipv6_sysctl_header = register_sysctl_paths(net_ipv6_ctl_path,
ipv6_table);
ipv6_sysctl_header = register_net_sysctl_table(net, net_ipv6_ctl_path,
ipv6_table);
if (!ipv6_sysctl_header)
return -ENOMEM;

return 0;

}

static void ipv6_sysctl_net_exit(struct net *net)
{
unregister_net_sysctl_table(ipv6_sysctl_header);
}

static struct pernet_operations ipv6_sysctl_net_ops = {
.init = ipv6_sysctl_net_init,
.exit = ipv6_sysctl_net_exit,
};

int ipv6_sysctl_register(void)
{
return register_pernet_subsys(&ipv6_sysctl_net_ops);
}

void ipv6_sysctl_unregister(void)
{
unregister_sysctl_table(ipv6_sysctl_header);
unregister_pernet_subsys(&ipv6_sysctl_net_ops);
}

0 comments on commit 89918fc

Please sign in to comment.