Skip to contentSkip to conversation

bonding: clean the primary slave if there is no slave matching new primary

PATCH Superseded Ding Tianhong 2 participants 2 messages Jan 14, 2014

Subsystems (3)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 2/3 bonding: clean the primary slave if there is no slave matching new primary

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.

---
 drivers/net/bonding/bond_options.c | 6 ++++++
 1 file changed, 6 insertions(+)
drivers/net/bonding/bond_options.c +6 -0
index 945a666..0ee0bfe 100644
@@ -512,6 +512,12 @@ int bond_option_primary_set(struct bonding *bond, const char *primary)
 		}
 	}
 
+	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;
 
Signature · 1 line
1.8.0
#1 lore raw
Quoted 2 lines · Ding Tianhong

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.

This one looks good.

Quoted 27 lines

---
drivers/net/bonding/bond_options.c | 6 ++++++

1 file changed, 6 insertions(+)
drivers/net/bonding/bond_options.c +6 -0
index 945a666..0ee0bfe 100644
@@ -512,6 +512,12 @@ int bond_option_primary_set(struct bonding *bond, const char *primary)
 		}
 	}
 
+	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;
 
Signature · 1 line
1.8.0