bonding: Added -ENODEV interpret for slaves option
authorJianlin Lv <Jianlin.Lv@arm.com>
Sun, 14 Mar 2021 14:56:29 +0000 (22:56 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Mar 2021 19:40:01 +0000 (12:40 -0700)
When the incorrect interface name is stored in the slaves/active_slave
option of the bonding sysfs, the kernel does not record the log that
interface does not exist.

This patch adds a log for -ENODEV error, which will facilitate users to
figure out such issue.

Signed-off-by: Jianlin Lv <Jianlin.Lv@arm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_options.c

index 77d7c38bd43546c882ccd387144307a15e9c6c7c..c9d3604ae129d2f3893745196c17906ee6743dbc 100644 (file)
@@ -640,6 +640,15 @@ static void bond_opt_error_interpret(struct bonding *bond,
                netdev_err(bond->dev, "option %s: unable to set because the bond device is up\n",
                           opt->name);
                break;
+       case -ENODEV:
+               if (val && val->string) {
+                       p = strchr(val->string, '\n');
+                       if (p)
+                               *p = '\0';
+                       netdev_err(bond->dev, "option %s: interface %s does not exist!\n",
+                                  opt->name, val->string);
+               }
+               break;
        default:
                break;
        }