fs: dlm: be sure to call dlm_send_queue_flush()
authorAlexander Aring <aahringo@redhat.com>
Thu, 12 Jan 2023 22:10:33 +0000 (17:10 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 07:50:19 +0000 (08:50 +0100)
[ Upstream commit 7354fa4ef697191effedc2ae9a8293427708bbf5 ]

If we release a midcomms node structure, there should be nothing left
inside the dlm midcomms send queue. However, sometimes this is not true
because I believe some DLM_FIN message was not acked... if we run
into a shutdown timeout, then we should be sure there is no pending send
dlm message inside this queue when releasing midcomms node structure.

Cc: stable@vger.kernel.org
Fixes: 489d8e559c65 ("fs: dlm: add reliable connection if reconnect")
Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/dlm/midcomms.c

index b53d7a2..d976c20 100644 (file)
@@ -1367,6 +1367,7 @@ static void midcomms_node_release(struct rcu_head *rcu)
        struct midcomms_node *node = container_of(rcu, struct midcomms_node, rcu);
 
        WARN_ON_ONCE(atomic_read(&node->send_queue_cnt));
+       dlm_send_queue_flush(node);
        kfree(node);
 }