bonding: handle case of device named bonding_master
authorStephen Hemminger <shemminger@vyatta.com>
Thu, 15 May 2008 05:35:04 +0000 (22:35 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 May 2008 05:35:04 +0000 (22:35 -0700)
If device already exists named bonding_masters, then fail. This is a wierd
corner case only a QA group could love.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_sysfs.c

index 68c41a0..08f3d39 100644 (file)
@@ -1437,8 +1437,16 @@ int bond_create_sysfs(void)
         * configure multiple bonding devices.
         */
        if (ret == -EEXIST) {
-               netdev_class = NULL;
-               return 0;
+               /* Is someone being kinky and naming a device bonding_master? */
+               if (__dev_get_by_name(&init_net,
+                                     class_attr_bonding_masters.attr.name))
+                       printk(KERN_ERR
+                              "network device named %s already exists in sysfs",
+                              class_attr_bonding_masters.attr.name);
+               else {
+                       netdev_class = NULL;
+                       return 0;
+               }
        }
 
        return ret;