• Ding Tianhong's avatar
    bonding: fix locking in bond_loadbalance_arp_mon() · 6fde8f03
    Ding Tianhong authored
    The commit 1d3ee88a
    (bonding: add netlink attributes to slave link dev)
    has add rtmsg_ifinfo() in bond_set_active_slave() and
    bond_set_backup_slave(), so the two function need to
    called in RTNL lock, but bond_loadbalance_arp_mon()
    only calling these functions in RCU, warning message
    will occurs.
    
    fix this by add a new function bond_slave_state_change(),
    which will reset the slave's state after slave link check,
    so remove the bond_set_xxx_slave() from the cycle and only
    record the slave_state_changed, this will call the new
    function to set all slaves to new state in RTNL later.
    
    Cc: Jay Vosburgh <fubar@us.ibm.com>
    Cc: Veaceslav Falico <vfalico@redhat.com>
    Cc: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: default avatarDing Tianhong <dingtianhong@huawei.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6fde8f03
bonding.h 14.9 KB