dlm: avoid blocking receive at the end of recovery
authorAlexander Aring <aahringo@redhat.com>
Tue, 2 Apr 2024 19:18:06 +0000 (15:18 -0400)
committerDavid Teigland <teigland@redhat.com>
Tue, 9 Apr 2024 16:44:49 +0000 (11:44 -0500)
commitc288745f1d4a2ead903e81d2f4716e9d40b0ad85
tree7ecb927ca1d0e6898c78b3ec6c974304dc2e1e58
parentcc396e2355b5ca6e1aee005f3ce99bab8f37f5ff
dlm: avoid blocking receive at the end of recovery

The end of the recovery process transitioned to normal message
processing by temporarily blocking the receiving context,
processing saved messages, then unblocking the receiving
context.  To avoid blocking the receiving context, the old
wait_queue and mutex are replaced by a new rwlock and the new
RECV_MSG_BLOCKED flag.  Received messages are added to the
list of saved messages, protected by the rwlock, until the
flag is cleared, which happens when all saved messages have
been processed.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/dlm_internal.h
fs/dlm/lock.c
fs/dlm/lockspace.c
fs/dlm/member.c
fs/dlm/requestqueue.c