Messages in this thread | | | From | Jay Vosburgh <> | Subject | Re: [PATCH 1/1] bonding: properly unset current_arp_slave on slave link up | Date | Thu, 05 Apr 2012 09:43:22 -0700 |
| |
Veaceslav Falico <vfalico@redhat.com> wrote:
>When a slave comes up, we're unsetting the current_arp_slave without >removing active flags from it, which can lead to situations where we have >more than one slave with active flags in active-backup mode. > >To avoid this situation we must remove the active flags from a slave before >removing it as a current_arp_slave. > >Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
>--- >diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c >index 0c76186..ad731a1 100644 >--- a/drivers/net/bonding/bond_main.c >+++ b/drivers/net/bonding/bond_main.c >@@ -3001,7 +3001,11 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks) > trans_start + delta_in_ticks)) || > bond->curr_active_slave != slave) { > slave->link = BOND_LINK_UP; >- bond->current_arp_slave = NULL; >+ if (bond->current_arp_slave) { >+ bond_set_slave_inactive_flags( >+ bond->current_arp_slave); >+ bond->current_arp_slave = NULL; >+ } > > pr_info("%s: link status definitely up for interface %s.\n", > bond->dev->name, slave->dev->name); >
| |