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

    [NETNS][IPV6]: Make ipv6_sysctl_register to return a value.
    
    This patch makes the function ipv6_sysctl_register to return a
    value. The af_inet6 init function is now able to handle an error and
    catch it from the initialization of the sysctl.
    
    Signed-off-by: Daniel Lezcano <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/net/ipv6.h         |    2 +-
 net/ipv6/af_inet6.c        |    5 ++++-
 net/ipv6/sysctl_net_ipv6.c |    9 +++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index e371f32..3e086f8 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -622,7 +622,7 @@ static inline int snmp6_unregister_dev(struct inet6_dev 
*idev)
 extern ctl_table ipv6_route_table[];
 extern ctl_table ipv6_icmp_table[];
 
-extern void ipv6_sysctl_register(void);
+extern int ipv6_sysctl_register(void);
 extern void ipv6_sysctl_unregister(void);
 #endif
 
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 34c2053..a284240 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -783,7 +783,9 @@ static int __init inet6_init(void)
         */
 
 #ifdef CONFIG_SYSCTL
-       ipv6_sysctl_register();
+       err = ipv6_sysctl_register();
+       if (err)
+               goto sysctl_fail;
 #endif
        err = icmpv6_init(&inet6_family_ops);
        if (err)
@@ -897,6 +899,7 @@ ndisc_fail:
 icmp_fail:
 #ifdef CONFIG_SYSCTL
        ipv6_sysctl_unregister();
+sysctl_fail:
 #endif
        cleanup_ipv6_mibs();
 out_unregister_sock:
diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
index 4ad8d9d..f713fbf 100644
--- a/net/ipv6/sysctl_net_ipv6.c
+++ b/net/ipv6/sysctl_net_ipv6.c
@@ -91,10 +91,15 @@ EXPORT_SYMBOL_GPL(net_ipv6_ctl_path);
 
 static struct ctl_table_header *ipv6_sysctl_header;
 
-void ipv6_sysctl_register(void)
+int ipv6_sysctl_register(void)
 {
        ipv6_sysctl_header = register_sysctl_paths(net_ipv6_ctl_path,
-                       ipv6_table);
+                                                  ipv6_table);
+       if (!ipv6_sysctl_header)
+               return -ENOMEM;
+
+       return 0;
+
 }
 
 void ipv6_sysctl_unregister(void)
-
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