diff mbox

[net-next,3/4] bonding: do not save non-existent device to bond primary in sysfs

Message ID 52CE8616.2010902@huawei.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Ding Tianhong Jan. 9, 2014, 11:20 a.m. UTC
Do not save non-existent device to bond primary in sysfs.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
---
 drivers/net/bonding/bond_options.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Veaceslav Falico Jan. 9, 2014, 11:47 a.m. UTC | #1
On Thu, Jan 09, 2014 at 07:20:54PM +0800, Ding Tianhong wrote:
>Do not save non-existent device to bond primary in sysfs.

Again, no - this interface might be enslaved after we've set the
parameters, as it usually does.

>
>Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
>---
> drivers/net/bonding/bond_options.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
>diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
>index 945a666..9b4518f 100644
>--- a/drivers/net/bonding/bond_options.c
>+++ b/drivers/net/bonding/bond_options.c
>@@ -501,6 +501,12 @@ int bond_option_primary_set(struct bonding *bond, const char *primary)
> 		goto out;
> 	}
>
>+	if (!__dev_get_by_name(dev_net(bond->dev), primary)) {
>+		pr_err("%s: unable to set non-existent device %s to primary.\n",
>+		       bond->dev->name, primary);
>+		goto out;
>+	}
>+
> 	bond_for_each_slave(bond, slave, iter) {
> 		if (strncmp(slave->dev->name, primary, IFNAMSIZ) == 0) {
> 			pr_info("%s: Setting %s as primary slave.\n",
>-- 
>1.8.0
>
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
index 945a666..9b4518f 100644
--- a/drivers/net/bonding/bond_options.c
+++ b/drivers/net/bonding/bond_options.c
@@ -501,6 +501,12 @@  int bond_option_primary_set(struct bonding *bond, const char *primary)
 		goto out;
 	}
 
+	if (!__dev_get_by_name(dev_net(bond->dev), primary)) {
+		pr_err("%s: unable to set non-existent device %s to primary.\n",
+		       bond->dev->name, primary);
+		goto out;
+	}
+
 	bond_for_each_slave(bond, slave, iter) {
 		if (strncmp(slave->dev->name, primary, IFNAMSIZ) == 0) {
 			pr_info("%s: Setting %s as primary slave.\n",