Merge tag 'spi-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
[firefly-linux-kernel-4.4.55.git] / net / ipv4 / ip_fragment.c
index 5482745d5d6843b8a3da1b2845bba0030e854944..1fe55ae817818abf9f10fa4c06a222476d3d3c45 100644 (file)
@@ -839,6 +839,8 @@ static void __init ip4_frags_ctl_register(void)
 
 static int __net_init ipv4_frags_init_net(struct net *net)
 {
+       int res;
+
        /* Fragment cache limits.
         *
         * The fragment memory accounting code, (tries to) account for
@@ -862,9 +864,13 @@ static int __net_init ipv4_frags_init_net(struct net *net)
         */
        net->ipv4.frags.timeout = IP_FRAG_TIME;
 
-       inet_frags_init_net(&net->ipv4.frags);
-
-       return ip4_frags_ns_ctl_register(net);
+       res = inet_frags_init_net(&net->ipv4.frags);
+       if (res)
+               return res;
+       res = ip4_frags_ns_ctl_register(net);
+       if (res)
+               inet_frags_uninit_net(&net->ipv4.frags);
+       return res;
 }
 
 static void __net_exit ipv4_frags_exit_net(struct net *net)