bonding: adjust locking comments
Now that locks have been removed, remove some unnecessary comments and adjust others to reflect reality. Also add a comment to "mode_lock" to describe its current users and give a brief summary why they need it. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e470259fa1
commit
8c0bc55028
@ -119,7 +119,6 @@ static inline void tlb_init_slave(struct slave *slave)
|
||||
SLAVE_TLB_INFO(slave).head = TLB_NULL_INDEX;
|
||||
}
|
||||
|
||||
/* Caller must hold bond lock for read, BH disabled */
|
||||
static void __tlb_clear_slave(struct bonding *bond, struct slave *slave,
|
||||
int save_load)
|
||||
{
|
||||
@ -142,7 +141,6 @@ static void __tlb_clear_slave(struct bonding *bond, struct slave *slave,
|
||||
tlb_init_slave(slave);
|
||||
}
|
||||
|
||||
/* Caller must hold bond lock for read */
|
||||
static void tlb_clear_slave(struct bonding *bond, struct slave *slave,
|
||||
int save_load)
|
||||
{
|
||||
@ -199,7 +197,6 @@ static long long compute_gap(struct slave *slave)
|
||||
(s64) (SLAVE_TLB_INFO(slave).load << 3); /* Bytes to bits */
|
||||
}
|
||||
|
||||
/* Caller must hold bond lock for read */
|
||||
static struct slave *tlb_get_least_loaded_slave(struct bonding *bond)
|
||||
{
|
||||
struct slave *slave, *least_loaded;
|
||||
@ -337,7 +334,6 @@ out:
|
||||
return RX_HANDLER_ANOTHER;
|
||||
}
|
||||
|
||||
/* Caller must hold bond lock for read */
|
||||
static struct slave *rlb_next_rx_slave(struct bonding *bond)
|
||||
{
|
||||
struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond));
|
||||
@ -370,7 +366,7 @@ static struct slave *rlb_next_rx_slave(struct bonding *bond)
|
||||
return rx_slave;
|
||||
}
|
||||
|
||||
/* Caller must hold rcu_read_lock() for read */
|
||||
/* Caller must hold rcu_read_lock() */
|
||||
static struct slave *__rlb_next_rx_slave(struct bonding *bond)
|
||||
{
|
||||
struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond));
|
||||
@ -749,7 +745,6 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond)
|
||||
return tx_slave;
|
||||
}
|
||||
|
||||
/* Caller must hold bond lock for read */
|
||||
static void rlb_rebalance(struct bonding *bond)
|
||||
{
|
||||
struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond));
|
||||
@ -1677,7 +1672,6 @@ void bond_alb_deinit_slave(struct bonding *bond, struct slave *slave)
|
||||
|
||||
}
|
||||
|
||||
/* Caller must hold bond lock for read */
|
||||
void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link)
|
||||
{
|
||||
struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond));
|
||||
|
@ -1629,7 +1629,7 @@ err_undo_flags:
|
||||
/*
|
||||
* Try to release the slave device <slave> from the bond device <master>
|
||||
* It is legal to access curr_active_slave without a lock because all the function
|
||||
* is write-locked. If "all" is true it means that the function is being called
|
||||
* is RTNL-locked. If "all" is true it means that the function is being called
|
||||
* while destroying a bond interface and all slaves are being released.
|
||||
*
|
||||
* The rules for slave state should be:
|
||||
@ -2494,7 +2494,7 @@ re_arm:
|
||||
* place for the slave. Returns 0 if no changes are found, >0 if changes
|
||||
* to link states must be committed.
|
||||
*
|
||||
* Called with rcu_read_lock hold.
|
||||
* Called with rcu_read_lock held.
|
||||
*/
|
||||
static int bond_ab_arp_inspect(struct bonding *bond)
|
||||
{
|
||||
@ -2642,7 +2642,7 @@ do_failover:
|
||||
/*
|
||||
* Send ARP probes for active-backup mode ARP monitor.
|
||||
*
|
||||
* Called with rcu_read_lock hold.
|
||||
* Called with rcu_read_lock held.
|
||||
*/
|
||||
static bool bond_ab_arp_probe(struct bonding *bond)
|
||||
{
|
||||
|
@ -195,6 +195,12 @@ struct bonding {
|
||||
s32 slave_cnt; /* never change this value outside the attach/detach wrappers */
|
||||
int (*recv_probe)(const struct sk_buff *, struct bonding *,
|
||||
struct slave *);
|
||||
/* mode_lock is used for mode-specific locking needs, currently used by:
|
||||
* 3ad mode (4) - protect against running bond_3ad_unbind_slave() and
|
||||
* bond_3ad_state_machine_handler() concurrently.
|
||||
* TLB mode (5) - to sync the use and modifications of its hash table
|
||||
* ALB mode (6) - to sync the use and modifications of its hash table
|
||||
*/
|
||||
spinlock_t mode_lock;
|
||||
u8 send_peer_notif;
|
||||
u8 igmp_retrans;
|
||||
|
Loading…
Reference in New Issue
Block a user