OSDN Git Service

bonding: fix event handling for stacked bonds
authorSabrina Dubroca <sd@queasysnail.net>
Fri, 12 Apr 2019 13:04:10 +0000 (15:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Apr 2019 20:22:09 +0000 (13:22 -0700)
commit92480b3977fd3884649d404cbbaf839b70035699
tree3fc0c1fc92ed516b9d1b2fc04d8a733730b1348e
parent8ed633b9baf9ec7d593ebb8e256312ff1c70ab37
bonding: fix event handling for stacked bonds

When a bond is enslaved to another bond, bond_netdev_event() only
handles the event as if the bond is a master, and skips treating the
bond as a slave.

This leads to a refcount leak on the slave, since we don't remove the
adjacency to its master and the master holds a reference on the slave.

Reproducer:
  ip link add bondL type bond
  ip link add bondU type bond
  ip link set bondL master bondU
  ip link del bondL

No "Fixes:" tag, this code is older than git history.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c