diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2008-05-14 22:35:04 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-05-14 22:35:04 -0700 |
commit | 38d2f38be9e4a2f1e3324c973a903aa972f71d0f (patch) | |
tree | f5a2b3b4cd26abefead85a723dc9e64494bf9e13 | |
parent | 0599ad53fee2d084f9ba26247d7452f06a40d298 (diff) |
bonding: handle case of device named bonding_master
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>
-rw-r--r-- | drivers/net/bonding/bond_sysfs.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index 68c41a00d93d..08f3d396bcd6 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -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; |