linux/drivers/net/bonding
Veaceslav Falico 23c147e026 bonding: correctly verify for the first slave in bond_enslave
After commit 1f718f0f4f ("bonding: populate
neighbour's private on enslave"), we've moved the actual 'linking' in the
end of the function - so that, once linked, the slave is ready to be used,
and is not still in the process of enslaving.

However, 802.3ad verified if it's the first slave by looking at the

if (bond_first_slave(bond) == new_slave)

which, because we've moved the linking to the end, became broken - on the
first slave bond_first_slave(bond) returns NULL.

Fix this by verifying if the prev_slave, that equals bond_last_slave(), is
actually populated - if it is - then it's not the first slave, and vice
versa.

CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-09-28 15:27:32 -07:00
..
bond_3ad.c bonding: add bond_has_slaves() and use it 2013-09-26 16:02:06 -04:00
bond_3ad.h
bond_alb.c bonding: add bond_has_slaves() and use it 2013-09-26 16:02:06 -04:00
bond_alb.h bonding: rework rlb_next_rx_slave() to use bond_for_each_slave() 2013-09-26 16:02:05 -04:00
bond_debugfs.c
bond_main.c bonding: correctly verify for the first slave in bond_enslave 2013-09-28 15:27:32 -07:00
bond_procfs.c bonding: make bond_for_each_slave() use lower neighbour's private 2013-09-26 16:02:05 -04:00
bond_sysfs.c net: create sysfs symlinks for neighbour devices 2013-09-26 16:02:08 -04:00
bonding.h net: create sysfs symlinks for neighbour devices 2013-09-26 16:02:08 -04:00
Makefile