|
@@ -263,6 +263,11 @@ static void tipc_node_write_lock(struct tipc_node *n)
|
|
|
write_lock_bh(&n->lock);
|
|
|
}
|
|
|
|
|
|
+static void tipc_node_write_unlock_fast(struct tipc_node *n)
|
|
|
+{
|
|
|
+ write_unlock_bh(&n->lock);
|
|
|
+}
|
|
|
+
|
|
|
static void tipc_node_write_unlock(struct tipc_node *n)
|
|
|
{
|
|
|
struct net *net = n->net;
|
|
@@ -417,7 +422,7 @@ void tipc_node_subscribe(struct net *net, struct list_head *subscr, u32 addr)
|
|
|
}
|
|
|
tipc_node_write_lock(n);
|
|
|
list_add_tail(subscr, &n->publ_list);
|
|
|
- tipc_node_write_unlock(n);
|
|
|
+ tipc_node_write_unlock_fast(n);
|
|
|
tipc_node_put(n);
|
|
|
}
|
|
|
|
|
@@ -435,7 +440,7 @@ void tipc_node_unsubscribe(struct net *net, struct list_head *subscr, u32 addr)
|
|
|
}
|
|
|
tipc_node_write_lock(n);
|
|
|
list_del_init(subscr);
|
|
|
- tipc_node_write_unlock(n);
|
|
|
+ tipc_node_write_unlock_fast(n);
|
|
|
tipc_node_put(n);
|
|
|
}
|
|
|
|