netdev
[Top] [All Lists]

[PATCH 5/10] [bonding 2.6] fix change active command

To: bonding-devel@xxxxxxxxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
Subject: [PATCH 5/10] [bonding 2.6] fix change active command
From: Amir Noam <amir.noam@xxxxxxxxx>
Date: Thu, 4 Sep 2003 20:44:55 +0300
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: KMail/1.4.3
diff -Nuarp a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
--- a/drivers/net/bonding/bond_main.c   Thu Sep  4 20:18:02 2003
+++ b/drivers/net/bonding/bond_main.c   Thu Sep  4 20:18:03 2003
@@ -1720,20 +1720,29 @@ static int bond_change_active(struct net
                }
        }
 
+       /*
+        * Changing to the current active: do nothing; return success.
+        */
+       if (newactive && (newactive == oldactive)) {
+               write_unlock_bh(&bond->lock);
+               return 0;
+       }
+
        if ((newactive != NULL)&&
            (oldactive != NULL)&&
-           (newactive != oldactive)&&
            (newactive->link == BOND_LINK_UP)&&
            IS_UP(newactive->dev)) {
-               bond_set_slave_inactive_flags(oldactive);
-               bond_set_slave_active_flags(newactive);
+               if (bond_mode == BOND_MODE_ACTIVEBACKUP) {
+                       bond_set_slave_inactive_flags(oldactive);
+                       bond_set_slave_active_flags(newactive);
+               }
+
                bond_mc_update(bond, newactive, oldactive);
                bond_assign_current_slave(bond, newactive);
                printk("%s : activate %s(old : %s)\n",
                        master_dev->name, newactive->dev->name, 
                        oldactive->dev->name);
-       }
-       else {
+       } else {
                ret = -EINVAL;
        }
        write_unlock_bh(&bond->lock);



<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH 5/10] [bonding 2.6] fix change active command, Amir Noam <=