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

fs: dlm: avoid comms shutdown delay in release_lockspace

When dlm_release_lockspace does active shutdown on connections to
other nodes, the active shutdown will wait for any exisitng passive
shutdowns to be resolved.  But, the sequence of operations during
dlm_release_lockspace can prevent the normal resolution of passive
shutdowns (processed normally by way of lockspace recovery.)
This disruption of passive shutdown handling can cause the active
shutdown to wait for a full timeout period, delaying the completion
of dlm_release_lockspace.

To fix this, make dlm_release_lockspace resolve existing passive
shutdowns (by calling dlm_clear_members earlier), before it does
active shutdowns.  The active shutdowns will not find any passive
shutdowns to wait for, and will not be delayed.
Reported-by: default avatarChris Mackowski <cmackows@redhat.com>
Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent aee742c9
...@@ -793,6 +793,7 @@ static int release_lockspace(struct dlm_ls *ls, int force) ...@@ -793,6 +793,7 @@ static int release_lockspace(struct dlm_ls *ls, int force)
if (ls_count == 1) { if (ls_count == 1) {
dlm_scand_stop(); dlm_scand_stop();
dlm_clear_members(ls);
dlm_midcomms_shutdown(); dlm_midcomms_shutdown();
} }
......
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