bonding: network device names are case sensative

The bonding device acts unlike all other Linux network device functions
in that it ignores case of device names. The developer must have come
from windows!

Cleanup the management of names and use standard routines where possible.
Flag places where bonding device still doesn't work right with network
namespaces.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
这个提交包含在:
Stephen Hemminger
2009-06-12 19:02:50 +00:00
提交者 David S. Miller
父节点 6d7ab43ccc
当前提交 373500db92
修改 2 个文件,包含 57 行新增53 行删除

查看文件

@@ -5064,19 +5064,16 @@ static void bond_set_lockdep_class(struct net_device *dev)
int bond_create(const char *name)
{
struct net_device *bond_dev;
struct bonding *bond;
int res;
rtnl_lock();
/* Check to see if the bond already exists. */
if (name) {
list_for_each_entry(bond, &bond_dev_list, bond_list)
if (strnicmp(bond->dev->name, name, IFNAMSIZ) == 0) {
pr_err(DRV_NAME ": cannot add bond %s;"
" it already exists\n", name);
res = -EPERM;
goto out_rtnl;
}
/* FIXME: pass netns from caller */
if (name && __dev_get_by_name(&init_net, name)) {
pr_err(DRV_NAME ": cannot add bond %s; already exists\n",
name);
res = -EEXIST;
goto out_rtnl;
}
bond_dev = alloc_netdev(sizeof(struct bonding), name ? name : "",