|
@@ -2213,33 +2213,24 @@ static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *in
|
|
|
{
|
|
|
struct bonding *bond = netdev_priv(bond_dev);
|
|
|
struct slave *slave;
|
|
|
- int i, found = 0;
|
|
|
-
|
|
|
- if (info->slave_id < 0) {
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
+ int i, res = -ENODEV;
|
|
|
|
|
|
read_lock(&bond->lock);
|
|
|
|
|
|
bond_for_each_slave(bond, slave, i) {
|
|
|
if (i == (int)info->slave_id) {
|
|
|
- found = 1;
|
|
|
+ res = 0;
|
|
|
+ strcpy(info->slave_name, slave->dev->name);
|
|
|
+ info->link = slave->link;
|
|
|
+ info->state = slave->state;
|
|
|
+ info->link_failure_count = slave->link_failure_count;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
read_unlock(&bond->lock);
|
|
|
|
|
|
- if (found) {
|
|
|
- strcpy(info->slave_name, slave->dev->name);
|
|
|
- info->link = slave->link;
|
|
|
- info->state = slave->state;
|
|
|
- info->link_failure_count = slave->link_failure_count;
|
|
|
- } else {
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
+ return res;
|
|
|
}
|
|
|
|
|
|
/*-------------------------------- Monitoring -------------------------------*/
|