From: Veaceslav Falico Date: Wed, 25 Sep 2013 07:20:19 +0000 (+0200) Subject: bonding: rework bond_ab_arp_probe() to use bond_for_each_slave() X-Git-Tag: v3.13-rc1~105^2~309^2~13 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4087df87b868cef0dd19a9409b40fb9415503552;p=pandora-kernel.git bonding: rework bond_ab_arp_probe() to use bond_for_each_slave() 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 CC: Andy Gospodarek Signed-off-by: Veaceslav Falico Signed-off-by: David S. Miller --- Reading git-diff-tree failed