netfilter: nf_ct_labels: move initialization out of pernet_operations
[deliverable/linux.git] / net / netfilter / nf_conntrack_core.c
index 06b8cdb5e62043f8b1d90a50b82c9b66e3ddf818..a4a3bcf77627efeee30151866d303b5623144275 100644 (file)
@@ -1348,6 +1348,7 @@ void nf_conntrack_cleanup_end(void)
 #ifdef CONFIG_NF_CONNTRACK_ZONES
        nf_ct_extend_unregister(&nf_ct_zone_extend);
 #endif
+       nf_conntrack_labels_fini();
        nf_conntrack_helper_fini();
        nf_conntrack_timeout_fini();
        nf_conntrack_ecache_fini();
@@ -1378,7 +1379,6 @@ void nf_conntrack_cleanup_net(struct net *net)
 
        nf_ct_free_hashtable(net->ct.hash, net->ct.htable_size);
        nf_conntrack_proto_fini(net);
-       nf_conntrack_labels_fini(net);
        nf_conntrack_helper_pernet_fini(net);
        nf_conntrack_ecache_pernet_fini(net);
        nf_conntrack_tstamp_pernet_fini(net);
@@ -1531,6 +1531,10 @@ int nf_conntrack_init_start(void)
        if (ret < 0)
                goto err_helper;
 
+       ret = nf_conntrack_labels_init();
+       if (ret < 0)
+               goto err_labels;
+
 #ifdef CONFIG_NF_CONNTRACK_ZONES
        ret = nf_ct_extend_register(&nf_ct_zone_extend);
        if (ret < 0)
@@ -1548,8 +1552,10 @@ int nf_conntrack_init_start(void)
 
 #ifdef CONFIG_NF_CONNTRACK_ZONES
 err_extend:
-       nf_conntrack_helper_fini();
+       nf_conntrack_labels_fini();
 #endif
+err_labels:
+       nf_conntrack_helper_fini();
 err_helper:
        nf_conntrack_timeout_fini();
 err_timeout:
@@ -1632,19 +1638,12 @@ int nf_conntrack_init_net(struct net *net)
        ret = nf_conntrack_helper_pernet_init(net);
        if (ret < 0)
                goto err_helper;
-
-       ret = nf_conntrack_labels_init(net);
-       if (ret < 0)
-               goto err_labels;
-
        ret = nf_conntrack_proto_init(net);
        if (ret < 0)
                goto err_proto;
        return 0;
 
 err_proto:
-       nf_conntrack_labels_fini(net);
-err_labels:
        nf_conntrack_helper_pernet_fini(net);
 err_helper:
        nf_conntrack_ecache_pernet_fini(net);
This page took 0.028999 seconds and 5 git commands to generate.