Commit 4a8bb7e27fbb68da888b55f26defd2855225b2d5

Authored by Veaceslav Falico
Committed by David S. Miller
1 parent 596a1b746c

bonding: Don't allow mode change via sysfs with slaves present

When changing mode via bonding's sysfs, the slaves are not initialized
correctly. Forbid to change modes with slaves present to ensure that every
slave is initialized correctly via bond_enslave().

Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Acked-by: Nicolas de Pesloüan <nicolas.2p.debian@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 7 additions and 0 deletions Side-by-side Diff

drivers/net/bonding/bond_sysfs.c
... ... @@ -319,6 +319,13 @@
319 319 goto out;
320 320 }
321 321  
  322 + if (bond->slave_cnt > 0) {
  323 + pr_err("unable to update mode of %s because it has slaves.\n",
  324 + bond->dev->name);
  325 + ret = -EPERM;
  326 + goto out;
  327 + }
  328 +
322 329 new_value = bond_parse_parm(buf, bond_mode_tbl);
323 330 if (new_value < 0) {
324 331 pr_err("%s: Ignoring invalid mode value %.*s.\n",