tipc: rename node create lock to protect node list and hlist
authorYing Xue <ying.xue@windriver.com>
Thu, 27 Mar 2014 04:54:36 +0000 (12:54 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Mar 2014 17:08:37 +0000 (13:08 -0400)
commit46651c59c483f14fd35cf7df2104feac0e54e258
tree06945336cf5bab75a27df13f7a6408d5d1e88672
parent987b58be376b8d087a9bb677f50592efc6ccb7c5
tipc: rename node create lock to protect node list and hlist

When a node is created, tipc_net_lock read lock is first held and
then node_create_lock is grabbed in order to prevent the same node
from being created and inserted into both node list and hlist twice.
But when we query node from the two node lists, we only hold
tipc_net_lock read lock without grabbing node_create_lock. Obviously
this locking policy is unable to guarantee that the two node lists
are always synchronized especially when the operation of changing
and accessing them occurs in different contexts like currently doing.

Therefore, rename node_create_lock to node_list_lock to protect the
two node lists, that is, whenever node is inserted into them or node
is queried from them, the node_list_lock should be always held. As a
result, tipc_net_lock read lock becomes redundant and then can be
removed from the node query functions.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/net.c
net/tipc/node.c
net/tipc/node.h