aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWeiping Pan <wpan@redhat.com>2012-06-10 23:00:20 +0000
committerDavid S. Miller <davem@davemloft.net>2012-06-12 15:23:11 -0700
commit8a93664df90db983cfede122f9b4ddb3a8284e52 (patch)
tree2b1da6946606e88a853edb62b3851a2b616d7c00
parentMerge branch 'master' of git://1984.lsi.us.es/net (diff)
downloadlinux-dev-8a93664df90db983cfede122f9b4ddb3a8284e52.tar.xz
linux-dev-8a93664df90db983cfede122f9b4ddb3a8284e52.zip
bonding:record primary when modify it via sysfs
If we modify primary via sysfs and it is not a valid slave, we should record it for future use, and this behavior is the same with bond_check_params(). Signed-off-by: Weiping Pan <wpan@redhat.com> Acked-by: Nicolas de Pesloüan <nicolas.2p.debian@free.fr> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bonding/bond_sysfs.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index aef42f045320..485bedb8278c 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -1082,8 +1082,12 @@ static ssize_t bonding_store_primary(struct device *d,
}
}
- pr_info("%s: Unable to set %.*s as primary slave.\n",
- bond->dev->name, (int)strlen(buf) - 1, buf);
+ strncpy(bond->params.primary, ifname, IFNAMSIZ);
+ bond->params.primary[IFNAMSIZ - 1] = 0;
+
+ pr_info("%s: Recording %s as primary, "
+ "but it has not been enslaved to %s yet.\n",
+ bond->dev->name, ifname, bond->dev->name);
out:
write_unlock_bh(&bond->curr_slave_lock);
read_unlock(&bond->lock);