From patchwork Fri Jan 25 13:54:49 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pablo Neira Ayuso X-Patchwork-Id: 215714 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id BBBB12C0089 for ; Sat, 26 Jan 2013 00:56:08 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932577Ab3AYN4D (ORCPT ); Fri, 25 Jan 2013 08:56:03 -0500 Received: from mail.us.es ([193.147.175.20]:60330 "EHLO mail.us.es" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757338Ab3AYNzU (ORCPT ); Fri, 25 Jan 2013 08:55:20 -0500 Received: (qmail 21924 invoked from network); 25 Jan 2013 14:55:18 +0100 Received: from unknown (HELO us.es) (192.168.2.13) by us.es with SMTP; 25 Jan 2013 14:55:18 +0100 Received: (qmail 22028 invoked by uid 507); 25 Jan 2013 13:55:18 -0000 X-Qmail-Scanner-Diagnostics: from 127.0.0.1 by antivirus3 (envelope-from , uid 501) with qmail-scanner-2.10 (clamdscan: 0.97.6/16567. spamassassin: 3.3.2. Clear:RC:1(127.0.0.1):SA:0(-98.4/7.5):. Processed in 3.261232 secs); 25 Jan 2013 13:55:18 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on antivirus3 X-Spam-Level: X-Spam-Status: No, score=-98.4 required=7.5 tests=BAYES_50,RCVD_IN_PBL, RDNS_DYNAMIC,USER_IN_WHITELIST autolearn=disabled version=3.3.2 X-Envelope-From: pablo@netfilter.org Received: from unknown (HELO antivirus3) (127.0.0.1) by us.es with SMTP; 25 Jan 2013 13:55:15 -0000 Received: from 192.168.1.13 (192.168.1.13) by antivirus3 (F-Secure/fsigk_smtp/407/antivirus3); Fri, 25 Jan 2013 14:55:15 +0100 (CET) X-Virus-Status: clean(F-Secure/fsigk_smtp/407/antivirus3) Received: (qmail 15855 invoked from network); 25 Jan 2013 14:55:15 +0100 Received: from 187.94.78.188.dynamic.jazztel.es (HELO localhost.localdomain) (pneira@us.es@188.78.94.187) by us.es with SMTP; 25 Jan 2013 14:55:15 +0100 From: pablo@netfilter.org To: netfilter-devel@vger.kernel.org Cc: davem@davemloft.net, netdev@vger.kernel.org Subject: [PATCH 17/21] netfilter: nf_ct_labels: move initialization out of pernet_operations Date: Fri, 25 Jan 2013 14:54:49 +0100 Message-Id: <1359122093-3404-18-git-send-email-pablo@netfilter.org> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1359122093-3404-1-git-send-email-pablo@netfilter.org> References: <1359122093-3404-1-git-send-email-pablo@netfilter.org> Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org From: Gao feng Move the global initial codes to the module_init/exit context. Signed-off-by: Gao feng Signed-off-by: Pablo Neira Ayuso --- include/net/netfilter/nf_conntrack_labels.h | 8 ++++---- net/netfilter/nf_conntrack_core.c | 17 ++++++++--------- net/netfilter/nf_conntrack_labels.c | 11 ++++------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/include/net/netfilter/nf_conntrack_labels.h b/include/net/netfilter/nf_conntrack_labels.h index a3ce5d0..c985695 100644 --- a/include/net/netfilter/nf_conntrack_labels.h +++ b/include/net/netfilter/nf_conntrack_labels.h @@ -50,9 +50,9 @@ int nf_connlabels_replace(struct nf_conn *ct, const u32 *data, const u32 *mask, unsigned int words); #ifdef CONFIG_NF_CONNTRACK_LABELS -int nf_conntrack_labels_init(struct net *net); -void nf_conntrack_labels_fini(struct net *net); +int nf_conntrack_labels_init(void); +void nf_conntrack_labels_fini(void); #else -static inline int nf_conntrack_labels_init(struct net *n) { return 0; } -static inline void nf_conntrack_labels_fini(struct net *net) {} +static inline int nf_conntrack_labels_init(void) { return 0; } +static inline void nf_conntrack_labels_fini(void) {} #endif diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index 06b8cdb..a4a3bcf 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) #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); diff --git a/net/netfilter/nf_conntrack_labels.c b/net/netfilter/nf_conntrack_labels.c index e1d1eb8..8fe2e99 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 = { .id = NF_CT_EXT_LABELS, }; -int nf_conntrack_labels_init(struct net *net) +int nf_conntrack_labels_init(void) { - if (net_eq(net, &init_net)) - return nf_ct_extend_register(&labels_extend); - return 0; + return nf_ct_extend_register(&labels_extend); } -void nf_conntrack_labels_fini(struct net *net) +void nf_conntrack_labels_fini(void) { - if (net_eq(net, &init_net)) - nf_ct_extend_unregister(&labels_extend); + nf_ct_extend_unregister(&labels_extend); }