• Veaceslav Falico's avatar
    bonding: rework bond_ab_arp_probe() to use bond_for_each_slave() · 4087df87
    Veaceslav Falico authored
    Currently it uses the hard-to-rcuify bond_for_each_slave_from(), and also
    it doesn't check every slave for disrepencies between the actual
    IS_UP(slave) and the slave->link == BOND_LINK_UP, but only till we find the
    next suitable slave.
    
    Fix this by using bond_for_each_slave() and storing the first good slave in
    *before till we find the current_arp_slave, after that we store the first good
    slave in new_slave. If new_slave is empty - use the slave stored in before,
    and if it's also empty - then we didn't find any suitable slave.
    
    Also, in the meanwhile, check for each slave status.
    
    CC: Jay Vosburgh <fubar@us.ibm.com>
    CC: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: default avatarVeaceslav Falico <vfalico@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4087df87
bond_main.c 127 KB