diff options
author | dingtianhong <dingtianhong@huawei.com> | 2013-12-13 02:19:55 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-12-14 06:58:02 (GMT) |
commit | e001bfad913bf119fb67c1e8dd2d4ec1f5d392fa (patch) | |
tree | fe08e42121a1b5e9bf173af18c04e78c884cc5bf /drivers | |
parent | 2e52f4fe3655c7a2311070c6713f7feabc75486c (diff) | |
download | linux-e001bfad913bf119fb67c1e8dd2d4ec1f5d392fa.tar.xz |
bonding: create bond_first_slave_rcu()
The bond_first_slave_rcu() will be used to instead of bond_first_slave()
in rcu_read_lock().
According to the Jay Vosburgh's suggestion, the struct netdev_adjacent
should hide from users who wanted to use it directly. so I package a
new function to get the first slave of the bond.
Suggested-by: Nikolay Aleksandrov <nikolay@redhat.com>
Suggested-by: Jay Vosburgh <fubar@us.ibm.com>
Suggested-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/bonding/bonding.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h index 8283cbd..8f0d6d0 100644 --- a/drivers/net/bonding/bonding.h +++ b/drivers/net/bonding/bonding.h @@ -101,6 +101,10 @@ netdev_adjacent_get_private(bond_slave_list(bond)->prev) : \ NULL) +/* Caller must have rcu_read_lock */ +#define bond_first_slave_rcu(bond) \ + netdev_lower_get_first_private_rcu(bond->dev) + #define bond_is_first_slave(bond, pos) (pos == bond_first_slave(bond)) #define bond_is_last_slave(bond, pos) (pos == bond_last_slave(bond)) |