[NETNS]: Add namespace to API for routing /proc entries creation.
authorDenis V. Lunev <den@openvz.org>
Thu, 10 Jan 2008 11:21:09 +0000 (03:21 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:01:24 +0000 (15:01 -0800)
This adds netns parameter to fib_proc_init/exit and replaces __init
specifier with __net_init. After this, we will not yet have these proc
files show info from the specific namespace - this will be done when
these tables become namespaced.

Acked-by: Benjamin Thery <benjamin.thery@bull.net>
Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
net/ipv4/af_inet.c
net/ipv4/fib_hash.c
net/ipv4/fib_trie.c

index d70b9b49f8b154a541b5e2db5135f58321c34e2c..f74cbb21af456793fdd0974991ad3eb005db8c5f 100644 (file)
@@ -253,8 +253,8 @@ static inline void fib_res_put(struct fib_result *res)
 }
 
 #ifdef CONFIG_PROC_FS
-extern int  fib_proc_init(void);
-extern void fib_proc_exit(void);
+extern int __net_init  fib_proc_init(struct net *net);
+extern void __net_exit fib_proc_exit(struct net *net);
 #endif
 
 #endif  /* _NET_FIB_H */
index 0e12cf646071728a5e111edfefbd192481806e77..d5b8cb1dad6773a694083cb33c5b6345da7e37f2 100644 (file)
@@ -1475,14 +1475,14 @@ static int __init ipv4_proc_init(void)
                goto out_tcp;
        if (udp4_proc_init())
                goto out_udp;
-       if (fib_proc_init())
+       if (fib_proc_init(&init_net))
                goto out_fib;
        if (ip_misc_proc_init())
                goto out_misc;
 out:
        return rc;
 out_misc:
-       fib_proc_exit();
+       fib_proc_exit(&init_net);
 out_fib:
        udp4_proc_exit();
 out_udp:
index ee1ffdb3044fe6fee31f3a61f49f2e4d15242edc..8de21bc4947a504c5197374caaa58c8d2d6e6a38 100644 (file)
@@ -1041,15 +1041,15 @@ static const struct file_operations fib_seq_fops = {
        .release        = seq_release_private,
 };
 
-int __init fib_proc_init(void)
+int __net_init fib_proc_init(struct net *net)
 {
-       if (!proc_net_fops_create(&init_net, "route", S_IRUGO, &fib_seq_fops))
+       if (!proc_net_fops_create(net, "route", S_IRUGO, &fib_seq_fops))
                return -ENOMEM;
        return 0;
 }
 
-void __init fib_proc_exit(void)
+void __net_exit fib_proc_exit(struct net *net)
 {
-       proc_net_remove(&init_net, "route");
+       proc_net_remove(net, "route");
 }
 #endif /* CONFIG_PROC_FS */
index a842204df7baf79a2060f923d3e2885291fc2ab2..4bbfaeedf210d163596ab38f3ce4b5a1a483c287 100644 (file)
@@ -2508,32 +2508,33 @@ static const struct file_operations fib_route_fops = {
        .release = seq_release_private,
 };
 
-int __init fib_proc_init(void)
+int __net_init fib_proc_init(struct net *net)
 {
-       if (!proc_net_fops_create(&init_net, "fib_trie", S_IRUGO, &fib_trie_fops))
+       if (!proc_net_fops_create(net, "fib_trie", S_IRUGO, &fib_trie_fops))
                goto out1;
 
-       if (!proc_net_fops_create(&init_net, "fib_triestat", S_IRUGO, &fib_triestat_fops))
+       if (!proc_net_fops_create(net, "fib_triestat", S_IRUGO,
+                                 &fib_triestat_fops))
                goto out2;
 
-       if (!proc_net_fops_create(&init_net, "route", S_IRUGO, &fib_route_fops))
+       if (!proc_net_fops_create(net, "route", S_IRUGO, &fib_route_fops))
                goto out3;
 
        return 0;
 
 out3:
-       proc_net_remove(&init_net, "fib_triestat");
+       proc_net_remove(net, "fib_triestat");
 out2:
-       proc_net_remove(&init_net, "fib_trie");
+       proc_net_remove(net, "fib_trie");
 out1:
        return -ENOMEM;
 }
 
-void __init fib_proc_exit(void)
+void __net_exit fib_proc_exit(struct net *net)
 {
-       proc_net_remove(&init_net, "fib_trie");
-       proc_net_remove(&init_net, "fib_triestat");
-       proc_net_remove(&init_net, "route");
+       proc_net_remove(net, "fib_trie");
+       proc_net_remove(net, "fib_triestat");
+       proc_net_remove(net, "route");
 }
 
 #endif /* CONFIG_PROC_FS */