Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
[linux-2.6-block.git] / net / ipv6 / reassembly.c
index f1159bb76e0a54fb55a3e8e382a6cb80c7a929f9..44e21a03cfc3fff395903d36e8e01a7a3e395afa 100644 (file)
@@ -706,13 +706,19 @@ static void ip6_frags_sysctl_unregister(void)
 
 static int __net_init ipv6_frags_init_net(struct net *net)
 {
+       int res;
+
        net->ipv6.frags.high_thresh = IPV6_FRAG_HIGH_THRESH;
        net->ipv6.frags.low_thresh = IPV6_FRAG_LOW_THRESH;
        net->ipv6.frags.timeout = IPV6_FRAG_TIMEOUT;
 
-       inet_frags_init_net(&net->ipv6.frags);
-
-       return ip6_frags_ns_sysctl_register(net);
+       res = inet_frags_init_net(&net->ipv6.frags);
+       if (res)
+               return res;
+       res = ip6_frags_ns_sysctl_register(net);
+       if (res)
+               inet_frags_uninit_net(&net->ipv6.frags);
+       return res;
 }
 
 static void __net_exit ipv6_frags_exit_net(struct net *net)