| From 0dd8f5d688beabe80cf9a553edc5baaaacf50a9a Mon Sep 17 00:00:00 2001 |
| From: Mahesh Bandewar <maheshb@google.com> |
| Date: Fri, 6 Dec 2019 15:44:55 -0800 |
| Subject: [PATCH] bonding: fix active-backup transition after link failure |
| |
| commit 5d485ed88d48f8101a2067348e267c0aaf4ed486 upstream. |
| |
| After the recent fix in commit 1899bb325149 ("bonding: fix state |
| transition issue in link monitoring"), the active-backup mode with |
| miimon initially come-up fine but after a link-failure, both members |
| transition into backup state. |
| |
| Following steps to reproduce the scenario (eth1 and eth2 are the |
| slaves of the bond): |
| |
| ip link set eth1 up |
| ip link set eth2 down |
| sleep 1 |
| ip link set eth2 up |
| ip link set eth1 down |
| cat /sys/class/net/eth1/bonding_slave/state |
| cat /sys/class/net/eth2/bonding_slave/state |
| |
| Fixes: 1899bb325149 ("bonding: fix state transition issue in link monitoring") |
| CC: Jay Vosburgh <jay.vosburgh@canonical.com> |
| Signed-off-by: Mahesh Bandewar <maheshb@google.com> |
| Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com> |
| Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c |
| index b597806252a6..b7ea57a7f260 100644 |
| --- a/drivers/net/bonding/bond_main.c |
| +++ b/drivers/net/bonding/bond_main.c |
| @@ -2238,9 +2238,6 @@ static void bond_miimon_commit(struct bonding *bond) |
| } else if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) { |
| /* make it immediately active */ |
| bond_set_active_slave(slave); |
| - } else if (slave != primary) { |
| - /* prevent it from being the active one */ |
| - bond_set_backup_slave(slave); |
| } |
| |
| netdev_info(bond->dev, "link status definitely up for interface %s, %u Mbps %s duplex\n", |
| -- |
| 2.7.4 |
| |