Commit eb55bbf8 authored by Xiangning Yu's avatar Xiangning Yu Committed by David S. Miller

bonding: re-evaluate force_primary when the primary slave name changes

There is a timing issue under active-standy mode, when bond_enslave() is
called, bond->params.primary might not be initialized yet.

Any time the primary slave string changes, bond->force_primary should be
set to true to make sure the primary becomes the active slave.
Signed-off-by: default avatarXiangning Yu <yuxiangning@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 000ade80
...@@ -1142,6 +1142,7 @@ static int bond_option_primary_set(struct bonding *bond, ...@@ -1142,6 +1142,7 @@ static int bond_option_primary_set(struct bonding *bond,
slave->dev->name); slave->dev->name);
rcu_assign_pointer(bond->primary_slave, slave); rcu_assign_pointer(bond->primary_slave, slave);
strcpy(bond->params.primary, slave->dev->name); strcpy(bond->params.primary, slave->dev->name);
bond->force_primary = true;
bond_select_active_slave(bond); bond_select_active_slave(bond);
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment