aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/hamradio/bpqether.c
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 /drivers/net/hamradio/bpqether.c
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 'drivers/net/hamradio/bpqether.c')
-rw-r--r--drivers/net/hamradio/bpqether.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
index cc0ee93669ea..1699d42d13ca 100644
--- a/drivers/net/hamradio/bpqether.c
+++ b/drivers/net/hamradio/bpqether.c
@@ -83,6 +83,7 @@
83 83
84#include <net/ip.h> 84#include <net/ip.h>
85#include <net/arp.h> 85#include <net/arp.h>
86#include <net/net_namespace.h>
86 87
87#include <linux/bpqether.h> 88#include <linux/bpqether.h>
88 89
@@ -594,7 +595,7 @@ static int bpq_device_event(struct notifier_block *this,unsigned long event, voi
594static int __init bpq_init_driver(void) 595static int __init bpq_init_driver(void)
595{ 596{
596#ifdef CONFIG_PROC_FS 597#ifdef CONFIG_PROC_FS
597 if (!proc_net_fops_create("bpqether", S_IRUGO, &bpq_info_fops)) { 598 if (!proc_net_fops_create(&init_net, "bpqether", S_IRUGO, &bpq_info_fops)) {
598 printk(KERN_ERR 599 printk(KERN_ERR
599 "bpq: cannot create /proc/net/bpqether entry.\n"); 600 "bpq: cannot create /proc/net/bpqether entry.\n");
600 return -ENOENT; 601 return -ENOENT;
@@ -618,7 +619,7 @@ static void __exit bpq_cleanup_driver(void)
618 619
619 unregister_netdevice_notifier(&bpq_dev_notifier); 620 unregister_netdevice_notifier(&bpq_dev_notifier);
620 621
621 proc_net_remove("bpqether"); 622 proc_net_remove(&init_net, "bpqether");
622 623
623 rtnl_lock(); 624 rtnl_lock();
624 while (!list_empty(&bpq_devices)) { 625 while (!list_empty(&bpq_devices)) {