Message ID | 20120405134743.GB16870@darkmag.usersys.redhat.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
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); > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 05, 2012 at 03:47:43PM +0200, Veaceslav Falico 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: Andy Gospodarek <andy@greyhouse.net> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 04/05/2012 10:47 AM, Veaceslav Falico 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: Marcelo Ricardo Leitner <mleitner@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Veaceslav Falico <vfalico@redhat.com> Date: Thu, 5 Apr 2012 15:47:43 +0200 > 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> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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);
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> --- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html