Commit aa7ab1e2 authored by Alexander Aring's avatar Alexander Aring Committed by David Teigland

fs: dlm: synchronize dlm before shutdown

This patch moves the dlm workqueue dlm synchronization before shutdown
handling. The patch just flushes all pending work before starting to
shutdown the connection. At least for the send_workqeue we should flush
the workqueue to make sure there is no new connection handling going on
as dlm_allow_conn switch is turned to false before.
Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent d012a719
...@@ -1624,10 +1624,6 @@ static void work_flush(void) ...@@ -1624,10 +1624,6 @@ static void work_flush(void)
struct hlist_node *n; struct hlist_node *n;
struct connection *con; struct connection *con;
if (recv_workqueue)
flush_workqueue(recv_workqueue);
if (send_workqueue)
flush_workqueue(send_workqueue);
do { do {
ok = 1; ok = 1;
foreach_conn(stop_conn); foreach_conn(stop_conn);
...@@ -1659,6 +1655,12 @@ void dlm_lowcomms_stop(void) ...@@ -1659,6 +1655,12 @@ void dlm_lowcomms_stop(void)
mutex_lock(&connections_lock); mutex_lock(&connections_lock);
dlm_allow_conn = 0; dlm_allow_conn = 0;
mutex_unlock(&connections_lock); mutex_unlock(&connections_lock);
if (recv_workqueue)
flush_workqueue(recv_workqueue);
if (send_workqueue)
flush_workqueue(send_workqueue);
foreach_conn(shutdown_conn); foreach_conn(shutdown_conn);
work_flush(); work_flush();
clean_writequeues(); clean_writequeues();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment