Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Gao feng and committed by
Pablo Neira Ayuso
5f69b8f5 5e615b22

+16 -20
+4 -4
include/net/netfilter/nf_conntrack_labels.h
··· 50 50 const u32 *data, const u32 *mask, unsigned int words); 51 51 52 52 #ifdef CONFIG_NF_CONNTRACK_LABELS 53 - int nf_conntrack_labels_init(struct net *net); 54 - void nf_conntrack_labels_fini(struct net *net); 53 + int nf_conntrack_labels_init(void); 54 + void nf_conntrack_labels_fini(void); 55 55 #else 56 - static inline int nf_conntrack_labels_init(struct net *n) { return 0; } 57 - static inline void nf_conntrack_labels_fini(struct net *net) {} 56 + static inline int nf_conntrack_labels_init(void) { return 0; } 57 + static inline void nf_conntrack_labels_fini(void) {} 58 58 #endif
+8 -9
net/netfilter/nf_conntrack_core.c
··· 1348 1348 #ifdef CONFIG_NF_CONNTRACK_ZONES 1349 1349 nf_ct_extend_unregister(&nf_ct_zone_extend); 1350 1350 #endif 1351 + nf_conntrack_labels_fini(); 1351 1352 nf_conntrack_helper_fini(); 1352 1353 nf_conntrack_timeout_fini(); 1353 1354 nf_conntrack_ecache_fini(); ··· 1379 1378 1380 1379 nf_ct_free_hashtable(net->ct.hash, net->ct.htable_size); 1381 1380 nf_conntrack_proto_fini(net); 1382 - nf_conntrack_labels_fini(net); 1383 1381 nf_conntrack_helper_pernet_fini(net); 1384 1382 nf_conntrack_ecache_pernet_fini(net); 1385 1383 nf_conntrack_tstamp_pernet_fini(net); ··· 1531 1531 if (ret < 0) 1532 1532 goto err_helper; 1533 1533 1534 + ret = nf_conntrack_labels_init(); 1535 + if (ret < 0) 1536 + goto err_labels; 1537 + 1534 1538 #ifdef CONFIG_NF_CONNTRACK_ZONES 1535 1539 ret = nf_ct_extend_register(&nf_ct_zone_extend); 1536 1540 if (ret < 0) ··· 1552 1548 1553 1549 #ifdef CONFIG_NF_CONNTRACK_ZONES 1554 1550 err_extend: 1555 - nf_conntrack_helper_fini(); 1551 + nf_conntrack_labels_fini(); 1556 1552 #endif 1553 + err_labels: 1554 + nf_conntrack_helper_fini(); 1557 1555 err_helper: 1558 1556 nf_conntrack_timeout_fini(); 1559 1557 err_timeout: ··· 1638 1632 ret = nf_conntrack_helper_pernet_init(net); 1639 1633 if (ret < 0) 1640 1634 goto err_helper; 1641 - 1642 - ret = nf_conntrack_labels_init(net); 1643 - if (ret < 0) 1644 - goto err_labels; 1645 - 1646 1635 ret = nf_conntrack_proto_init(net); 1647 1636 if (ret < 0) 1648 1637 goto err_proto; 1649 1638 return 0; 1650 1639 1651 1640 err_proto: 1652 - nf_conntrack_labels_fini(net); 1653 - err_labels: 1654 1641 nf_conntrack_helper_pernet_fini(net); 1655 1642 err_helper: 1656 1643 nf_conntrack_ecache_pernet_fini(net);
+4 -7
net/netfilter/nf_conntrack_labels.c
··· 101 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)) 107 - return nf_ct_extend_register(&labels_extend); 108 - return 0; 106 + return nf_ct_extend_register(&labels_extend); 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)) 114 - nf_ct_extend_unregister(&labels_extend); 111 + nf_ct_extend_unregister(&labels_extend); 115 112 }