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: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
        struct hlist_node *n;
        struct connection *con;
 
-       if (recv_workqueue)
-               flush_workqueue(recv_workqueue);
-       if (send_workqueue)
-               flush_workqueue(send_workqueue);
        do {
                ok = 1;
                foreach_conn(stop_conn);
        mutex_lock(&connections_lock);
        dlm_allow_conn = 0;
        mutex_unlock(&connections_lock);
+
+       if (recv_workqueue)
+               flush_workqueue(recv_workqueue);
+       if (send_workqueue)
+               flush_workqueue(send_workqueue);
+
        foreach_conn(shutdown_conn);
        work_flush();
        clean_writequeues();