aboutsummaryrefslogtreecommitdiffstats
path: root/net/wanrouter
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2007-09-12 06:01:34 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:49:06 -0400
commit457c4cbc5a3dde259d2a1f15d5f9785290397267 (patch)
treea2ceee88780cbce27433b9a4434b3e9251efd81a /net/wanrouter
parent07feaebfcc10cd35e745c7073667935246494bee (diff)
[NET]: Make /proc/net per network namespace
This patch makes /proc/net per network namespace. It modifies the global variables proc_net and proc_net_stat to be per network namespace. The proc_net file helpers are modified to take a network namespace argument, and all of their callers are fixed to pass &init_net for that argument. This ensures that all of the /proc/net files are only visible and usable in the initial network namespace until the code behind them has been updated to be handle multiple network namespaces. Making /proc/net per namespace is necessary as at least some files in /proc/net depend upon the set of network devices which is per network namespace, and even more files in /proc/net have contents that are relevant to a single network namespace. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wanrouter')
-rw-r--r--net/wanrouter/wanproc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/wanrouter/wanproc.c b/net/wanrouter/wanproc.c
index 236e7eaf1b7f..f2e54c3f064e 100644
--- a/net/wanrouter/wanproc.c
+++ b/net/wanrouter/wanproc.c
@@ -29,6 +29,7 @@
29#include <linux/seq_file.h> 29#include <linux/seq_file.h>
30#include <linux/smp_lock.h> 30#include <linux/smp_lock.h>
31 31
32#include <net/net_namespace.h>
32#include <asm/io.h> 33#include <asm/io.h>
33 34
34#define PROC_STATS_FORMAT "%30s: %12lu\n" 35#define PROC_STATS_FORMAT "%30s: %12lu\n"
@@ -287,7 +288,7 @@ static const struct file_operations wandev_fops = {
287int __init wanrouter_proc_init(void) 288int __init wanrouter_proc_init(void)
288{ 289{
289 struct proc_dir_entry *p; 290 struct proc_dir_entry *p;
290 proc_router = proc_mkdir(ROUTER_NAME, proc_net); 291 proc_router = proc_mkdir(ROUTER_NAME, init_net.proc_net);
291 if (!proc_router) 292 if (!proc_router)
292 goto fail; 293 goto fail;
293 294
@@ -303,7 +304,7 @@ int __init wanrouter_proc_init(void)
303fail_stat: 304fail_stat:
304 remove_proc_entry("config", proc_router); 305 remove_proc_entry("config", proc_router);
305fail_config: 306fail_config:
306 remove_proc_entry(ROUTER_NAME, proc_net); 307 remove_proc_entry(ROUTER_NAME, init_net.proc_net);
307fail: 308fail:
308 return -ENOMEM; 309 return -ENOMEM;
309} 310}
@@ -316,7 +317,7 @@ void wanrouter_proc_cleanup(void)
316{ 317{
317 remove_proc_entry("config", proc_router); 318 remove_proc_entry("config", proc_router);
318 remove_proc_entry("status", proc_router); 319 remove_proc_entry("status", proc_router);
319 remove_proc_entry(ROUTER_NAME, proc_net); 320 remove_proc_entry(ROUTER_NAME, init_net.proc_net);
320} 321}
321 322
322/* 323/*