bonding: make __get_active_agg() use bond_for_each_slave()
Currently we're relying on suboptimal construct for (; aggregator; aggregator = __get_next_agg(aggregator)) { where aggregator is an argument of __get_active_agg() which is _always_ the first slave's aggregator - judging by all the callers, comments in the ad_agg_selection_logic() and by logic. Convert it to use the standard bond_for_each_slave(). CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3e36bb75ce
commit
19177e7d55
|
@ -720,16 +720,15 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator)
|
||||||
*/
|
*/
|
||||||
static struct aggregator *__get_active_agg(struct aggregator *aggregator)
|
static struct aggregator *__get_active_agg(struct aggregator *aggregator)
|
||||||
{
|
{
|
||||||
struct aggregator *retval = NULL;
|
struct bonding *bond = aggregator->slave->bond;
|
||||||
|
struct list_head *iter;
|
||||||
|
struct slave *slave;
|
||||||
|
|
||||||
for (; aggregator; aggregator = __get_next_agg(aggregator)) {
|
bond_for_each_slave(bond, slave, iter)
|
||||||
if (aggregator->is_active) {
|
if (SLAVE_AD_INFO(slave).aggregator.is_active)
|
||||||
retval = aggregator;
|
return &(SLAVE_AD_INFO(slave).aggregator);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return retval;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue