• Veaceslav Falico's avatar
    bonding: rework bond_3ad_xmit_xor() to use bond_for_each_slave() only · c33d7887
    Veaceslav Falico authored
    Currently, there are two loops - first we find the first slave in an
    aggregator after the xmit_hash_policy() returned number, and after that we
    loop from that slave, over bonding head, and till that slave to find any
    suitable slave to send the packet through.
    
    Replace it by just one bond_for_each_slave() loop, which first loops
    through the requested number of slaves, saving the first suitable one, and
    after that we've hit the requested number of slaves to skip - search for
    any up slave to send the packet through. If we don't find such kind of
    slave - then just send the packet through the first suitable slave found.
    
    Logic remains unchainged, and we skip two loops. Also, refactor it a bit
    for readability.
    
    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>
    c33d7887
bond_3ad.c 80.8 KB