From: Pavel Emelyanov <xemul@openvz.org>
To: Linux Netdev List <netdev@vger.kernel.org>
Cc: Daniel Lezcano <dlezcano@fr.ibm.com>,
Denis Lunev <den@openvz.org>,
Linux Containers <containers@lists.osdl.org>,
Benjamin Thery <benjamin.thery@bull.net>
Subject: [PATCH 9/14][VLAN]: Add net argument to proc init/cleanup calls.
Date: Thu, 10 Apr 2008 19:16:54 +0400 [thread overview]
Message-ID: <47FE2F66.60001@openvz.org> (raw)
In-Reply-To: <47FE2AD4.9080609@openvz.org>
Proc files will be created in each net, so prepare them for this
change just to make patches smaller.
The net != &init_net checks in them are for git-bisect sanity, but
I'll drop them soon.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
---
net/8021q/vlan.c | 15 +++++++--------
net/8021q/vlanproc.c | 12 +++++++++---
net/8021q/vlanproc.h | 10 ++++++----
3 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 9296601..541542e 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -642,8 +642,14 @@ static int vlan_init_net(struct net *net)
if (err < 0)
goto err_assign;
+ err = vlan_proc_init(net);
+ if (err < 0)
+ goto err_proc;
+
return 0;
+err_proc:
+ /* nothing */
err_assign:
kfree(vn);
err_alloc:
@@ -655,6 +661,7 @@ static void vlan_exit_net(struct net *net)
struct vlan_net *vn;
vn = net_generic(net, vlan_net_id);
+ vlan_proc_cleanup(net);
kfree(vn);
}
@@ -674,10 +681,6 @@ static int __init vlan_proto_init(void)
if (err < 0)
goto err0;
- err = vlan_proc_init();
- if (err < 0)
- goto err1;
-
err = register_netdevice_notifier(&vlan_notifier_block);
if (err < 0)
goto err2;
@@ -693,8 +696,6 @@ static int __init vlan_proto_init(void)
err3:
unregister_netdevice_notifier(&vlan_notifier_block);
err2:
- vlan_proc_cleanup();
-err1:
unregister_pernet_gen_device(vlan_net_id, &vlan_net_ops);
err0:
return err;
@@ -715,8 +716,6 @@ static void __exit vlan_cleanup_module(void)
for (i = 0; i < VLAN_GRP_HASH_SIZE; i++)
BUG_ON(!hlist_empty(&vlan_group_hash[i]));
- vlan_proc_cleanup();
-
unregister_pernet_gen_device(vlan_net_id, &vlan_net_ops);
synchronize_net();
diff --git a/net/8021q/vlanproc.c b/net/8021q/vlanproc.c
index 24cd96e..4d13aeb 100644
--- a/net/8021q/vlanproc.c
+++ b/net/8021q/vlanproc.c
@@ -138,8 +138,11 @@ static const char *vlan_name_type_str[VLAN_NAME_TYPE_HIGHEST] = {
* Clean up /proc/net/vlan entries
*/
-void vlan_proc_cleanup(void)
+void vlan_proc_cleanup(struct net *net)
{
+ if (net != &init_net)
+ return;
+
if (proc_vlan_conf)
remove_proc_entry(name_conf, proc_vlan_dir);
@@ -155,8 +158,11 @@ void vlan_proc_cleanup(void)
* Create /proc/net/vlan entries
*/
-int __init vlan_proc_init(void)
+int vlan_proc_init(struct net *net)
{
+ if (net != &init_net)
+ return 0;
+
proc_vlan_dir = proc_mkdir(name_root, init_net.proc_net);
if (!proc_vlan_dir)
goto err;
@@ -169,7 +175,7 @@ int __init vlan_proc_init(void)
err:
pr_err("%s: can't create entry in proc filesystem!\n", __func__);
- vlan_proc_cleanup();
+ vlan_proc_cleanup(net);
return -ENOBUFS;
}
diff --git a/net/8021q/vlanproc.h b/net/8021q/vlanproc.h
index da542ca..063f60a 100644
--- a/net/8021q/vlanproc.h
+++ b/net/8021q/vlanproc.h
@@ -2,15 +2,17 @@
#define __BEN_VLAN_PROC_INC__
#ifdef CONFIG_PROC_FS
-int vlan_proc_init(void);
+struct net;
+
+int vlan_proc_init(struct net *net);
int vlan_proc_rem_dev(struct net_device *vlandev);
int vlan_proc_add_dev(struct net_device *vlandev);
-void vlan_proc_cleanup(void);
+void vlan_proc_cleanup(struct net *net);
#else /* No CONFIG_PROC_FS */
-#define vlan_proc_init() (0)
-#define vlan_proc_cleanup() do {} while (0)
+#define vlan_proc_init(net) (0)
+#define vlan_proc_cleanup(net) do {} while (0)
#define vlan_proc_add_dev(dev) ({(void)(dev), 0; })
#define vlan_proc_rem_dev(dev) ({(void)(dev), 0; })
#endif
--
1.5.3.4
next prev parent reply other threads:[~2008-04-10 14:53 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-10 14:57 [PATCH 0/14 (3 subsets)] Make tuns and vlans devices work per-net Pavel Emelyanov
2008-04-10 15:01 ` [PATCH 1/14][NETNS]: Introduce the net-subsys id generator Pavel Emelyanov
2008-04-10 17:37 ` [Devel] " Paul Menage
2008-04-10 20:52 ` Daniel Lezcano
2008-04-11 7:56 ` Pavel Emelyanov
2008-04-10 15:06 ` [PATCH 3/14][TUN]: Introduce the tun_net structure Pavel Emelyanov
2008-04-11 1:01 ` Paul E. McKenney
2008-04-11 7:55 ` Pavel Emelyanov
2008-04-11 15:04 ` Paul E. McKenney
2008-04-11 15:45 ` Pavel Emelyanov
2008-04-11 16:27 ` Paul E. McKenney
2008-04-12 8:44 ` Pavel Emelyanov
2008-04-15 7:44 ` David Miller
2008-04-15 10:31 ` Pavel Emelyanov
[not found] ` <48048411.5030506-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-04-15 10:06 ` David Miller
2008-04-10 15:07 ` [PATCH 4/14][TUN]: Actually make the tun_dev_list per-net Pavel Emelyanov
2008-04-10 15:09 ` [PATCH 5/14][TUN]: Allow to register tun devices in namespace Pavel Emelyanov
2008-04-10 15:10 ` [PATCH 6/14][RTNL]: Introduce the rtnl_kill_links call Pavel Emelyanov
[not found] ` <47FE2E01.6030000-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-04-10 22:09 ` Daniel Hokka Zakrisson
2008-04-11 8:01 ` Pavel Emelyanov
2008-04-11 12:48 ` Patrick McHardy
2008-04-10 15:13 ` [PATCH 7/14][VLAN]: Tag vlan_group with device, not ifindex Pavel Emelyanov
2008-04-10 15:16 ` Pavel Emelyanov [this message]
[not found] ` <47FE2AD4.9080609-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-04-10 15:04 ` [PATCH 2/14][NETNS]: Generic per-net pointers Pavel Emelyanov
2008-04-11 13:43 ` Daniel Lezcano
[not found] ` <47FF6B1B.5090106-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-04-11 14:29 ` Pavel Emelyanov
2008-04-10 15:14 ` [PATCH 8/14][VLAN]: Introduce the vlan_net structure Pavel Emelyanov
2008-04-10 15:18 ` [PATCH 10/14][VLAN]: Create proc files in proper net Pavel Emelyanov
2008-04-10 15:23 ` [PATCH 14/14][VLAN]: Migrate proc files when vlan device is moved to namespace Pavel Emelyanov
2008-04-10 15:19 ` [PATCH 11/14][VLAN]: Make /proc/net/vlan/conf file show per-net info Pavel Emelyanov
2008-04-10 15:20 ` [PATCH 12/14][VLAN]: Make vlan_name_type per-net Pavel Emelyanov
2008-04-10 15:22 ` [PATCH 13/14][VLAN]: Allows vlan devices registration in net namespace Pavel Emelyanov
2008-04-11 15:42 ` [PATCH 0/14 (3 subsets)] Make tuns and vlans devices work per-net Daniel Lezcano
2008-04-11 15:57 ` Pavel Emelyanov
2008-04-11 18:11 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47FE2F66.60001@openvz.org \
--to=xemul@openvz.org \
--cc=benjamin.thery@bull.net \
--cc=containers@lists.osdl.org \
--cc=den@openvz.org \
--cc=dlezcano@fr.ibm.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).