[patch 1/2][NETNS49][IPV4][UDPLITE] add udp_proc_register per net

Daniel Lezcano dlezcano at fr.ibm.com
Tue Oct 9 10:00:08 PDT 2007


This patch add a pernet subsystem to register /proc/net/udplite
per network namespace.

Signed-off-by: Daniel Lezcano <dlezcano at fr.ibm.com>

---
 net/ipv4/udplite.c |   24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

Index: linux-2.6-netns/net/ipv4/udplite.c
===================================================================
--- linux-2.6-netns.orig/net/ipv4/udplite.c
+++ linux-2.6-netns/net/ipv4/udplite.c
@@ -96,6 +96,27 @@ static struct udp_seq_afinfo udplite4_se
 	.seq_show	= udp4_seq_show,
 	.seq_fops	= &udplite4_seq_fops,
 };
+
+static int udplite4_proc_net_init(struct net *net)
+{
+	if (net != &init_net)
+		return -EPERM;
+
+	if (udp_proc_register(net, &udplite4_seq_afinfo)) /* udplite4_proc_init() */
+		printk(KERN_ERR "%s: Cannot register /proc!\n", __FUNCTION__);
+
+	return 0;
+}
+
+static void udplite4_proc_net_exit(struct net *net)
+{
+	udp_proc_unregister(net, &udplite4_seq_afinfo);
+}
+
+static struct pernet_operations udplite4_proc_net_ops = {
+	.init = udplite4_proc_net_init,
+	.exit = udplite4_proc_net_exit,
+};
 #endif
 
 void __init udplite4_register(void)
@@ -109,8 +130,7 @@ void __init udplite4_register(void)
 	inet_register_protosw(&udplite4_protosw);
 
 #ifdef CONFIG_PROC_FS
-	if (udp_proc_register(&init_net, &udplite4_seq_afinfo)) /* udplite4_proc_init() */
-		printk(KERN_ERR "%s: Cannot register /proc!\n", __FUNCTION__);
+	register_pernet_subsys(&udplite4_proc_net_ops);
 #endif
 	return;
 

-- 


More information about the Containers mailing list