This is a note to let you know that I've just added the patch titled

    bonding: properly unset current_arp_slave on slave link up

to the 3.0-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     bonding-properly-unset-current_arp_slave-on-slave-link-up.patch
and it can be found in the queue-3.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From 9fbddae4780d8ac05c1359b7c0b4f207e66e237d Mon Sep 17 00:00:00 2001
From: Veaceslav Falico <[email protected]>
Date: Thu, 5 Apr 2012 03:47:43 +0000
Subject: bonding: properly unset current_arp_slave on slave link up


From: Veaceslav Falico <[email protected]>

[ Upstream commit 5a4309746cd74734daa964acb02690c22b3c8911 ]

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 <[email protected]>
Signed-off-by: Jay Vosburgh <[email protected]>
Signed-off-by: Andy Gospodarek <[email protected]>
Signed-off-by: Marcelo Ricardo Leitner <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/net/bonding/bond_main.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -3076,7 +3076,11 @@ static void bond_ab_arp_commit(struct bo
                                           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);


Patches currently in stable-queue which might be from [email protected] are

queue-3.0/bonding-properly-unset-current_arp_slave-on-slave-link-up.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to