diff options
author | Gao feng <gaofeng@cn.fujitsu.com> | 2013-01-21 17:10:31 -0500 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-01-23 06:56:23 -0500 |
commit | 5f69b8f5218dc303cbcb6f71d221c27d3cd17ebb (patch) | |
tree | b904cb0d77fe07d3ac67bc7b9f25bbf13c5322ca /net | |
parent | 5e615b220087c5551f486c967831cecdfd338dbe (diff) |
netfilter: nf_ct_labels: move initialization out of pernet_operations
Move the global initial codes to the module_init/exit context.
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/nf_conntrack_core.c | 17 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_labels.c | 11 |
2 files changed, 12 insertions, 16 deletions
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index 06b8cdb5e620..a4a3bcf77627 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c | |||
@@ -1348,6 +1348,7 @@ void nf_conntrack_cleanup_end(void) | |||
1348 | #ifdef CONFIG_NF_CONNTRACK_ZONES | 1348 | #ifdef CONFIG_NF_CONNTRACK_ZONES |
1349 | nf_ct_extend_unregister(&nf_ct_zone_extend); | 1349 | nf_ct_extend_unregister(&nf_ct_zone_extend); |
1350 | #endif | 1350 | #endif |
1351 | nf_conntrack_labels_fini(); | ||
1351 | nf_conntrack_helper_fini(); | 1352 | nf_conntrack_helper_fini(); |
1352 | nf_conntrack_timeout_fini(); | 1353 | nf_conntrack_timeout_fini(); |
1353 | nf_conntrack_ecache_fini(); | 1354 | nf_conntrack_ecache_fini(); |
@@ -1378,7 +1379,6 @@ void nf_conntrack_cleanup_net(struct net *net) | |||
1378 | 1379 | ||
1379 | nf_ct_free_hashtable(net->ct.hash, net->ct.htable_size); | 1380 | nf_ct_free_hashtable(net->ct.hash, net->ct.htable_size); |
1380 | nf_conntrack_proto_fini(net); | 1381 | nf_conntrack_proto_fini(net); |
1381 | nf_conntrack_labels_fini(net); | ||
1382 | nf_conntrack_helper_pernet_fini(net); | 1382 | nf_conntrack_helper_pernet_fini(net); |
1383 | nf_conntrack_ecache_pernet_fini(net); | 1383 | nf_conntrack_ecache_pernet_fini(net); |
1384 | nf_conntrack_tstamp_pernet_fini(net); | 1384 | nf_conntrack_tstamp_pernet_fini(net); |
@@ -1531,6 +1531,10 @@ int nf_conntrack_init_start(void) | |||
1531 | if (ret < 0) | 1531 | if (ret < 0) |
1532 | goto err_helper; | 1532 | goto err_helper; |
1533 | 1533 | ||
1534 | ret = nf_conntrack_labels_init(); | ||
1535 | if (ret < 0) | ||
1536 | goto err_labels; | ||
1537 | |||
1534 | #ifdef CONFIG_NF_CONNTRACK_ZONES | 1538 | #ifdef CONFIG_NF_CONNTRACK_ZONES |
1535 | ret = nf_ct_extend_register(&nf_ct_zone_extend); | 1539 | ret = nf_ct_extend_register(&nf_ct_zone_extend); |
1536 | if (ret < 0) | 1540 | if (ret < 0) |
@@ -1548,8 +1552,10 @@ int nf_conntrack_init_start(void) | |||
1548 | 1552 | ||
1549 | #ifdef CONFIG_NF_CONNTRACK_ZONES | 1553 | #ifdef CONFIG_NF_CONNTRACK_ZONES |
1550 | err_extend: | 1554 | err_extend: |
1551 | nf_conntrack_helper_fini(); | 1555 | nf_conntrack_labels_fini(); |
1552 | #endif | 1556 | #endif |
1557 | err_labels: | ||
1558 | nf_conntrack_helper_fini(); | ||
1553 | err_helper: | 1559 | err_helper: |
1554 | nf_conntrack_timeout_fini(); | 1560 | nf_conntrack_timeout_fini(); |
1555 | err_timeout: | 1561 | err_timeout: |
@@ -1632,19 +1638,12 @@ int nf_conntrack_init_net(struct net *net) | |||
1632 | ret = nf_conntrack_helper_pernet_init(net); | 1638 | ret = nf_conntrack_helper_pernet_init(net); |
1633 | if (ret < 0) | 1639 | if (ret < 0) |
1634 | goto err_helper; | 1640 | goto err_helper; |
1635 | |||
1636 | ret = nf_conntrack_labels_init(net); | ||
1637 | if (ret < 0) | ||
1638 | goto err_labels; | ||
1639 | |||
1640 | ret = nf_conntrack_proto_init(net); | 1641 | ret = nf_conntrack_proto_init(net); |
1641 | if (ret < 0) | 1642 | if (ret < 0) |
1642 | goto err_proto; | 1643 | goto err_proto; |
1643 | return 0; | 1644 | return 0; |
1644 | 1645 | ||
1645 | err_proto: | 1646 | err_proto: |
1646 | nf_conntrack_labels_fini(net); | ||
1647 | err_labels: | ||
1648 | nf_conntrack_helper_pernet_fini(net); | 1647 | nf_conntrack_helper_pernet_fini(net); |
1649 | err_helper: | 1648 | err_helper: |
1650 | nf_conntrack_ecache_pernet_fini(net); | 1649 | nf_conntrack_ecache_pernet_fini(net); |
diff --git a/net/netfilter/nf_conntrack_labels.c b/net/netfilter/nf_conntrack_labels.c index e1d1eb850e7f..8fe2e99428b7 100644 --- a/net/netfilter/nf_conntrack_labels.c +++ b/net/netfilter/nf_conntrack_labels.c | |||
@@ -101,15 +101,12 @@ static struct nf_ct_ext_type labels_extend __read_mostly = { | |||
101 | .id = NF_CT_EXT_LABELS, | 101 | .id = NF_CT_EXT_LABELS, |
102 | }; | 102 | }; |
103 | 103 | ||
104 | int nf_conntrack_labels_init(struct net *net) | 104 | int nf_conntrack_labels_init(void) |
105 | { | 105 | { |
106 | if (net_eq(net, &init_net)) | 106 | return nf_ct_extend_register(&labels_extend); |
107 | return nf_ct_extend_register(&labels_extend); | ||
108 | return 0; | ||
109 | } | 107 | } |
110 | 108 | ||
111 | void nf_conntrack_labels_fini(struct net *net) | 109 | void nf_conntrack_labels_fini(void) |
112 | { | 110 | { |
113 | if (net_eq(net, &init_net)) | 111 | nf_ct_extend_unregister(&labels_extend); |
114 | nf_ct_extend_unregister(&labels_extend); | ||
115 | } | 112 | } |