• Jay Vosburgh's avatar
    bonding: Convert miimon to new locking · 0b0eef66
    Jay Vosburgh authored
    	Convert mii (link state) monitor to acquire correct locks for
    failover events.  In particular, failovers generally require RTNL at a low
    level (when manipulating device MAC addresses, for example) and no other
    locks.  The high level monitor is responsible for acquiring a known set
    of locks, RTNL, the bond->lock for read and the slave_lock for write, and
    the low level failover processing can then release appropriate locks as
    needed.  This patch provides the high level portion.
    
    	As it is undesirable to acquire RTNL for every monitor pass (which
    may occur as often as every 10 ms), the miimon has been converted to
    do conditional locking.  A first pass inspects all slaves to determine
    if any action is required, and if so, a second pass (after acquring RTNL)
    is done to perform any actions (doing a complete rescan, as the situation
    may have changed when all locks were released).
    Signed-off-by: default avatarAndy Gospodarek <andy@greyhouse.net>
    Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    0b0eef66
bond_main.c 129 KB