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

netfilter: nf_ct_timeout: 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
8684094c 3fe0f943

+19 -27
+4 -4
include/net/netfilter/nf_conntrack_timeout.h
··· 76 76 } 77 77 78 78 #ifdef CONFIG_NF_CONNTRACK_TIMEOUT 79 - extern int nf_conntrack_timeout_init(struct net *net); 80 - extern void nf_conntrack_timeout_fini(struct net *net); 79 + extern int nf_conntrack_timeout_init(void); 80 + extern void nf_conntrack_timeout_fini(void); 81 81 #else 82 - static inline int nf_conntrack_timeout_init(struct net *net) 82 + static inline int nf_conntrack_timeout_init(void) 83 83 { 84 84 return 0; 85 85 } 86 86 87 - static inline void nf_conntrack_timeout_fini(struct net *net) 87 + static inline void nf_conntrack_timeout_fini(void) 88 88 { 89 89 return; 90 90 }
+8 -7
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_timeout_fini(); 1351 1352 nf_conntrack_ecache_fini(); 1352 1353 nf_conntrack_tstamp_fini(); 1353 1354 nf_conntrack_acct_fini(); ··· 1379 1378 nf_conntrack_proto_fini(net); 1380 1379 nf_conntrack_labels_fini(net); 1381 1380 nf_conntrack_helper_fini(net); 1382 - nf_conntrack_timeout_fini(net); 1383 1381 nf_conntrack_ecache_pernet_fini(net); 1384 1382 nf_conntrack_tstamp_pernet_fini(net); 1385 1383 nf_conntrack_acct_pernet_fini(net); ··· 1522 1522 if (ret < 0) 1523 1523 goto err_ecache; 1524 1524 1525 + ret = nf_conntrack_timeout_init(); 1526 + if (ret < 0) 1527 + goto err_timeout; 1528 + 1525 1529 #ifdef CONFIG_NF_CONNTRACK_ZONES 1526 1530 ret = nf_ct_extend_register(&nf_ct_zone_extend); 1527 1531 if (ret < 0) ··· 1543 1539 1544 1540 #ifdef CONFIG_NF_CONNTRACK_ZONES 1545 1541 err_extend: 1546 - nf_conntrack_ecache_fini(); 1542 + nf_conntrack_timeout_fini(); 1547 1543 #endif 1544 + err_timeout: 1545 + nf_conntrack_ecache_fini(); 1548 1546 err_ecache: 1549 1547 nf_conntrack_tstamp_fini(); 1550 1548 err_tstamp: ··· 1622 1616 ret = nf_conntrack_ecache_pernet_init(net); 1623 1617 if (ret < 0) 1624 1618 goto err_ecache; 1625 - ret = nf_conntrack_timeout_init(net); 1626 - if (ret < 0) 1627 - goto err_timeout; 1628 1619 ret = nf_conntrack_helper_init(net); 1629 1620 if (ret < 0) 1630 1621 goto err_helper; ··· 1640 1637 err_labels: 1641 1638 nf_conntrack_helper_fini(net); 1642 1639 err_helper: 1643 - nf_conntrack_timeout_fini(net); 1644 - err_timeout: 1645 1640 nf_conntrack_ecache_pernet_fini(net); 1646 1641 err_ecache: 1647 1642 nf_conntrack_tstamp_pernet_fini(net);
+7 -16
net/netfilter/nf_conntrack_timeout.c
··· 37 37 .id = NF_CT_EXT_TIMEOUT, 38 38 }; 39 39 40 - int nf_conntrack_timeout_init(struct net *net) 40 + int nf_conntrack_timeout_init(void) 41 41 { 42 - int ret = 0; 43 - 44 - if (net_eq(net, &init_net)) { 45 - ret = nf_ct_extend_register(&timeout_extend); 46 - if (ret < 0) { 47 - printk(KERN_ERR "nf_ct_timeout: Unable to register " 48 - "timeout extension.\n"); 49 - return ret; 50 - } 51 - } 52 - 53 - return 0; 42 + int ret = nf_ct_extend_register(&timeout_extend); 43 + if (ret < 0) 44 + pr_err("nf_ct_timeout: Unable to register timeout extension.\n"); 45 + return ret; 54 46 } 55 47 56 - void nf_conntrack_timeout_fini(struct net *net) 48 + void nf_conntrack_timeout_fini(void) 57 49 { 58 - if (net_eq(net, &init_net)) 59 - nf_ct_extend_unregister(&timeout_extend); 50 + nf_ct_extend_unregister(&timeout_extend); 60 51 }