]> git.karo-electronics.de Git - linux-beck.git/commitdiff
[VLAN]: Handle vlan devices net namespace changing.
authorPavel Emelyanov <xemul@openvz.org>
Wed, 16 Apr 2008 07:57:01 +0000 (00:57 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Apr 2008 07:57:01 +0000 (00:57 -0700)
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>
net/8021q/vlan.c

index 7e9d22ec7d4520be0b28ce38308e2e05be8c1bc9..2a739adaa92b9886063ac4e6b1ce60f9730bddec 100644 (file)
@@ -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;
        }
 }