From: Veaceslav Falico Date: Mon, 21 Oct 2013 09:48:30 +0000 (+0200) Subject: bonding: move bond-specific init after enslave happens X-Git-Tag: v3.13-rc1~105^2~140 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5378c2e6ea236de847a39bdb6f3aa83137120d26;p=pandora-kernel.git bonding: move bond-specific init after enslave happens As Jiri noted, currently we first do all bonding-specific initialization (specifically - bond_select_active_slave(bond)) before we actually attach the slave (so that it becomes visible through bond_for_each_slave() and friends). This might result in bond_select_active_slave() not seeing the first/new slave and, thus, not actually selecting an active slave. Fix this by moving all the bond-related init part after we've actually completely initialized and linked (via bond_master_upper_dev_link()) the new slave. Also, remove the bond_(de/a)ttach_slave(), it's useless to have functions to ++/-- one int. After this we have all the initialization of the new slave *before* linking, and all the stuff that needs to be done on bonding *after* it. It has also a bonus effect - we can remove the locking on the new slave init completely, and only use it for bond_select_active_slave(). Reported-by: Jiri Pirko CC: Jay Vosburgh CC: Andy Gospodarek Signed-off-by: Veaceslav Falico Acked-by: Ding Tianhong@huawei.com Reviewed-by: Jiri Pirko Signed-off-by: David S. Miller --- Reading git-diff-tree failed