diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-04-16 00:57:01 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-16 00:57:01 -0700 |
commit | 30688a9a3e06d83d187658bd1c15f0e306bed38b (patch) | |
tree | 11d1e2d7c87948025bd4d23e9001e56fe063dc5e /net/8021q/vlan.c | |
parent | 65d292a2ef2df66fd1ab83447afee71ef3720ded (diff) | |
download | op-kernel-dev-30688a9a3e06d83d187658bd1c15f0e306bed38b.zip op-kernel-dev-30688a9a3e06d83d187658bd1c15f0e306bed38b.tar.gz |
[VLAN]: Handle vlan devices net namespace changing.
When van device is moved to another namespace proc files,
related to this device, should also change one.
Use the netdev REGISTER and UNREGISTER event handlers for this.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q/vlan.c')
-rw-r--r-- | net/8021q/vlan.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 7e9d22e..2a739ad 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -154,8 +154,6 @@ void unregister_vlan_dev(struct net_device *dev) grp = __vlan_find_group(real_dev); BUG_ON(!grp); - vlan_proc_rem_dev(dev); - /* Take it out of our own structures, but be sure to interlock with * HW accelerating devices or SW vlan input packet processing. */ @@ -278,9 +276,6 @@ int register_vlan_dev(struct net_device *dev) if (real_dev->features & NETIF_F_HW_VLAN_FILTER) real_dev->vlan_rx_add_vid(real_dev, vlan_id); - if (vlan_proc_add_dev(dev) < 0) - pr_warning("8021q: failed to add proc entry for %s\n", - dev->name); return 0; out_free_group: @@ -396,6 +391,14 @@ static void __vlan_device_event(struct net_device *dev, unsigned long event) pr_warning("8021q: failed to change proc name for %s\n", dev->name); break; + case NETDEV_REGISTER: + if (vlan_proc_add_dev(dev) < 0) + pr_warning("8021q: failed to add proc entry for %s\n", + dev->name); + break; + case NETDEV_UNREGISTER: + vlan_proc_rem_dev(dev); + break; } } |