All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/10] netfilter: make /proc/net/netfilter pernet
@ 2013-02-07  7:49 Gao feng
  2013-02-07  7:49 ` [PATCH 03/10] netfilter: ebt_log: add net namespace support for ebt_log Gao feng
                   ` (7 more replies)
  0 siblings, 8 replies; 28+ messages in thread
From: Gao feng @ 2013-02-07  7:49 UTC (permalink / raw)
  To: netfilter-devel-u79uwXL29TY76Z2rM5mHXA
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	lve-ke3WRBg/xIg, ebiederm-aS9lmoZGLiVWk0Htik3J/w,
	pablo-Cap9r6Oaw4JrovVCs/uTlw

Now,only init net has directroy /proc/net/netfilter,
this patch make this proc dentry pernet.

Signed-off-by: Gao feng <gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
---
 include/net/netns/x_tables.h |  3 +++
 net/netfilter/core.c         | 40 ++++++++++++++++++++++++++++++++++------
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/include/net/netns/x_tables.h b/include/net/netns/x_tables.h
index c24060e..aa6a545 100644
--- a/include/net/netns/x_tables.h
+++ b/include/net/netns/x_tables.h
@@ -9,6 +9,9 @@ struct ebt_table;
 struct netns_xt {
 	struct list_head tables[NFPROTO_NUMPROTO];
 	bool notrack_deprecated_warning;
+#if defined CONFIG_PROC_FS
+	struct proc_dir_entry *proc_netfilter;
+#endif
 #if defined(CONFIG_BRIDGE_NF_EBTABLES) || \
     defined(CONFIG_BRIDGE_NF_EBTABLES_MODULE)
 	struct ebt_table *broute_table;
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index a9c488b..2038673 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -281,6 +281,35 @@ struct proc_dir_entry *proc_net_netfilter;
 EXPORT_SYMBOL(proc_net_netfilter);
 #endif
 
+static int __net_init netfilter_net_init(struct net *net)
+{
+#ifdef CONFIG_PROC_FS
+	net->xt.proc_netfilter = proc_net_mkdir(net,
+						"netfilter",
+						net->proc_net);
+	if (net_eq(net, &init_net)) {
+		if (!net->xt.proc_netfilter)
+			panic("cannot create netfilter proc entry");
+		else
+			proc_net_netfilter = net->xt.proc_netfilter;
+	} else if (!net->xt.proc_netfilter) {
+		pr_err("cannot create netfilter proc entry");
+		return -EINVAL;
+	}
+#endif
+	return 0;
+}
+
+static void __net_exit netfilter_net_exit(struct net *net)
+{
+	remove_proc_entry("netfilter", net->proc_net);
+}
+
+static struct pernet_operations netfilter_net_ops = {
+	.init = netfilter_net_init,
+	.exit = netfilter_net_exit,
+};
+
 void __init netfilter_init(void)
 {
 	int i, h;
@@ -289,12 +318,11 @@ void __init netfilter_init(void)
 			INIT_LIST_HEAD(&nf_hooks[i][h]);
 	}
 
-#ifdef CONFIG_PROC_FS
-	proc_net_netfilter = proc_mkdir("netfilter", init_net.proc_net);
-	if (!proc_net_netfilter)
-		panic("cannot create netfilter proc entry");
-#endif
+	if (register_pernet_subsys(&netfilter_net_ops) < 0)
+		return;
 
-	if (netfilter_log_init() < 0)
+	if (netfilter_log_init() < 0) {
+		unregister_pernet_subsys(&netfilter_net_ops);
 		panic("cannot initialize nf_log");
+	}
 }
-- 
1.7.11.7

^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2013-11-06  2:00 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-07  7:49 [PATCH 01/10] netfilter: make /proc/net/netfilter pernet Gao feng
2013-02-07  7:49 ` [PATCH 03/10] netfilter: ebt_log: add net namespace support for ebt_log Gao feng
2013-02-07  7:49 ` [PATCH 06/10] netfilter: ipt_ulog: add net namespace support for ipt_ulog Gao feng
2013-02-07  7:57   ` Gao feng
     [not found]   ` <1360223390-15589-6-git-send-email-gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2013-02-07  7:57     ` Gao feng
2013-02-07  7:49 ` [PATCH 07/10] netfilter: nfnetlink_log: add net namespace support for nfnetlink_log Gao feng
2013-02-07  7:49 ` [PATCH 08/10] netfilter: nf_log: enable nflog in un-init net namespace Gao feng
2013-02-07  7:49 ` [PATCH 09/10] netfilter: nfnetlink_queue: add net namespace support for nfnetlink_queue Gao feng
2013-02-07  7:49 ` [PATCH 10/10] netfilter: remove useless variable proc_net_netfilter Gao feng
2013-02-07 18:33 ` [PATCH 01/10] netfilter: make /proc/net/netfilter pernet Pablo Neira Ayuso
2013-02-20  6:36   ` Gao feng
2013-02-20 23:13     ` Pablo Neira Ayuso
     [not found]     ` <51246EEA.5020301-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2013-02-20 23:13       ` Pablo Neira Ayuso
2013-02-20  6:36   ` Gao feng
     [not found] ` <1360223390-15589-1-git-send-email-gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2013-02-07  7:49   ` [PATCH 02/10] netfilter: nf_log: prepar net namespace support for nf_log Gao feng
     [not found]     ` <1360223390-15589-2-git-send-email-gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2013-02-07 18:39       ` Pablo Neira Ayuso
2013-11-05 14:14       ` Arnaldo Carvalho de Melo
2013-11-06  2:00         ` Gao feng
     [not found]         ` <20131105141455.GB22912-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2013-11-06  2:00           ` Gao feng
2013-02-07  7:49   ` [PATCH 03/10] netfilter: ebt_log: add net namespace support for ebt_log Gao feng
2013-02-07  7:49   ` [PATCH 04/10] netfilter: xt_LOG: add net namespace support for xt_LOG Gao feng
2013-02-07  7:49   ` [PATCH 05/10] netfilter: ebt_ulog: add net namesapce support for ebt_ulog Gao feng
2013-02-07  7:49   ` [PATCH 06/10] netfilter: ipt_ulog: add net namespace support for ipt_ulog Gao feng
2013-02-07  7:49   ` [PATCH 07/10] netfilter: nfnetlink_log: add net namespace support for nfnetlink_log Gao feng
2013-02-07  7:49   ` [PATCH 08/10] netfilter: nf_log: enable nflog in un-init net namespace Gao feng
2013-02-07  7:49   ` [PATCH 09/10] netfilter: nfnetlink_queue: add net namespace support for nfnetlink_queue Gao feng
2013-02-07  7:49   ` [PATCH 10/10] netfilter: remove useless variable proc_net_netfilter Gao feng
2013-02-07 18:33   ` [PATCH 01/10] netfilter: make /proc/net/netfilter pernet Pablo Neira Ayuso

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.