aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/node.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-12-03 07:53:39 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-12-03 07:53:39 +0100
commit44c94100b6fa83488337fe639eb7baba7dd93a91 (patch)
treeffc60bdfe3a3f2f20359d2a7df8389f3ecf51d82 /net/tipc/node.c
parent77df6d8d7298fd3fae12a646fd368fdcdb86152c (diff)
parent2595646791c319cadfdbf271563aac97d0843dc7 (diff)
downloadkernel_replicant_linux-44c94100b6fa83488337fe639eb7baba7dd93a91.tar.gz
kernel_replicant_linux-44c94100b6fa83488337fe639eb7baba7dd93a91.tar.bz2
kernel_replicant_linux-44c94100b6fa83488337fe639eb7baba7dd93a91.zip
Merge 4.20-rc5 into usb-next
We need the USB fixes into usb-next. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r--net/tipc/node.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 2afc4f8c37a7..488019766433 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -584,12 +584,15 @@ static void tipc_node_clear_links(struct tipc_node *node)
/* tipc_node_cleanup - delete nodes that does not
* have active links for NODE_CLEANUP_AFTER time
*/
-static int tipc_node_cleanup(struct tipc_node *peer)
+static bool tipc_node_cleanup(struct tipc_node *peer)
{
struct tipc_net *tn = tipc_net(peer->net);
bool deleted = false;
- spin_lock_bh(&tn->node_list_lock);
+ /* If lock held by tipc_node_stop() the node will be deleted anyway */
+ if (!spin_trylock_bh(&tn->node_list_lock))
+ return false;
+
tipc_node_write_lock(peer);
if (!node_is_up(peer) && time_after(jiffies, peer->delete_at)) {