fs: dlm: don't set stop rx flag after node reset
commit 15c63db8e86a72e0d5cfb9bf0cd1870e39a3e5fe upstream.
Similar to the stop tx flag, the rx flag should warn about a dlm message
being received at DLM_FIN state change, when we are assuming no other
dlm application messages. If we receive a FIN message and we are in the
state DLM_FIN_WAIT2 we call midcomms_node_reset() which puts the
midcomms node into DLM_CLOSED state. Afterwards we should not set the
DLM_NODE_FLAG_STOP_RX flag any more. This patch changes the setting
DLM_NODE_FLAG_STOP_RX in those state changes when we receive a FIN
message and we assume there will be no other dlm application messages
received until we hit DLM_CLOSED state.
Cc: stable@vger.kernel.org
Fixes: 489d8e559c ("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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
19e99109fb
commit
3ed92883b3
@@ -504,6 +504,7 @@ static void dlm_midcomms_receive_buffer(union dlm_packet *p,
|
||||
break;
|
||||
case DLM_FIN_WAIT1:
|
||||
node->state = DLM_CLOSING;
|
||||
set_bit(DLM_NODE_FLAG_STOP_RX, &node->flags);
|
||||
pr_debug("switch node %d to state %s\n",
|
||||
node->nodeid, dlm_state_str(node->state));
|
||||
break;
|
||||
@@ -524,8 +525,6 @@ static void dlm_midcomms_receive_buffer(union dlm_packet *p,
|
||||
return;
|
||||
}
|
||||
spin_unlock(&node->state_lock);
|
||||
|
||||
set_bit(DLM_NODE_FLAG_STOP_RX, &node->flags);
|
||||
break;
|
||||
default:
|
||||
WARN_ON(test_bit(DLM_NODE_FLAG_STOP_RX, &node->flags));
|
||||
|
||||
Reference in New Issue
Block a user