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)
|
||||
{
|
||||
struct aggregator *retval = NULL;
|
||||
struct bonding *bond = aggregator->slave->bond;
|
||||
struct list_head *iter;
|
||||
struct slave *slave;
|
||||
|
||||
for (; aggregator; aggregator = __get_next_agg(aggregator)) {
|
||||
if (aggregator->is_active) {
|
||||
retval = aggregator;
|
||||
break;
|
||||
}
|
||||
}
|
||||
bond_for_each_slave(bond, slave, iter)
|
||||
if (SLAVE_AD_INFO(slave).aggregator.is_active)
|
||||
return &(SLAVE_AD_INFO(slave).aggregator);
|
||||
|
||||
return retval;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue