bonding: clean the primary slave if there is no slave matching new primary
authordingtianhong <dingtianhong@huawei.com>
Sat, 18 Jan 2014 08:28:52 +0000 (16:28 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Jan 2014 01:45:32 +0000 (17:45 -0800)
If the new primay is not matching any slave in the bond, the bond should
record it to params, clean the primary slave and select a new active slave.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_options.c

index 05a402c99bff5e4071ef554ecfc1e34f9c44f6ef..4cee04aa6eb3f497bf2c66e04ecd00dc69a9ff19 100644 (file)
@@ -1021,6 +1021,12 @@ int bond_option_primary_set(struct bonding *bond, struct bond_opt_value *newval)
                }
        }
 
+       if (bond->primary_slave) {
+               pr_info("%s: Setting primary slave to None.\n",
+                       bond->dev->name);
+               bond->primary_slave = NULL;
+               bond_select_active_slave(bond);
+       }
        strncpy(bond->params.primary, primary, IFNAMSIZ);
        bond->params.primary[IFNAMSIZ - 1] = 0;