Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=81c1c17804ac52036e07b0ba95cb637bdd4784d6
Commit:     81c1c17804ac52036e07b0ba95cb637bdd4784d6
Parent:     291480c09a9452a3d8852a9bfeb5ba2cbcfe662c
Author:     Daniel Lezcano <[EMAIL PROTECTED]>
AuthorDate: Thu Jan 10 02:48:33 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 15:01:15 2008 -0800

    [NETNS][IPV6]: Make a subsystem for af_inet6.
    
    This patch add a network namespace subsystem for the af_inet6 module.
    It does nothing right now, but one of its purpose is to receive the
    different variables for sysctl in order to initialize them.
    
    When the sysctl variable will be moved to the network namespace
    structure, they will be no longer initialized as global static
    variables, so we must find a place to initialize them. Because the
    sysctl can be disabled, it has no sense to store them in the
    sysctl_net_ipv6 file.
    
    Signed-off-by: Daniel Lezcano <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/af_inet6.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index a284240..72b898f 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -719,6 +719,21 @@ static void cleanup_ipv6_mibs(void)
        snmp_mib_free((void **)udplite_stats_in6);
 }
 
+static int inet6_net_init(struct net *net)
+{
+       return 0;
+}
+
+static void inet6_net_exit(struct net *net)
+{
+       return;
+}
+
+static struct pernet_operations inet6_net_ops = {
+       .init = inet6_net_init,
+       .exit = inet6_net_exit,
+};
+
 static int __init inet6_init(void)
 {
        struct sk_buff *dummy_skb;
@@ -782,6 +797,10 @@ static int __init inet6_init(void)
         *      able to communicate via both network protocols.
         */
 
+       err = register_pernet_subsys(&inet6_net_ops);
+       if (err)
+               goto register_pernet_fail;
+
 #ifdef CONFIG_SYSCTL
        err = ipv6_sysctl_register();
        if (err)
@@ -901,6 +920,8 @@ icmp_fail:
        ipv6_sysctl_unregister();
 sysctl_fail:
 #endif
+       unregister_pernet_subsys(&inet6_net_ops);
+register_pernet_fail:
        cleanup_ipv6_mibs();
 out_unregister_sock:
        sock_unregister(PF_INET6);
@@ -956,6 +977,7 @@ static void __exit inet6_exit(void)
 #ifdef CONFIG_SYSCTL
        ipv6_sysctl_unregister();
 #endif
+       unregister_pernet_subsys(&inet6_net_ops);
        cleanup_ipv6_mibs();
        proto_unregister(&rawv6_prot);
        proto_unregister(&udplitev6_prot);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to