]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dlm: add new flag DLM_RELEASE_RECOVER for dlm_lockspace_release
authorAlexander Aring <aahringo@redhat.com>
Wed, 23 Jul 2025 15:21:56 +0000 (11:21 -0400)
committerDavid Teigland <teigland@redhat.com>
Tue, 12 Aug 2025 16:37:21 +0000 (11:37 -0500)
commit6f4f4ca5caf73de5e86329547d4527b3e0c08488
tree5843d3994f8173d87c853de702d0a3882fd33c21
parentde7b4869b4ecf5790b0e7875c5522d43d7a61d79
dlm: add new flag DLM_RELEASE_RECOVER for dlm_lockspace_release

When dlm_lockspace_release() is passed DLM_RELEASE_RECOVER, it
tells the dlm to handle the release/leave as if the node had failed,
i.e. perform recovery steps for a failed node, like recover_slot().

When DLM_RELEASE_RECOVER is set:
- dlm_release_lockspace() includes RELEASE_RECOVER=1 in the OFFLINE
  uevent sent to userspace.
- userspace/dlm_controld sends a message to all lockspace members
  indicating that the subsequent node removal should be handled as
  if the node had failed.
- when dlm_controld on all nodes receives the new message, it sets
  the release_recover configfs entry to 1 for the node.
- when the dlm/kernel next performs recovery and removes the node,
  it will see that release_recover has been set, and will perform
  recovery steps for the node as if it had failed, e.g. the
  recover_slot() callback is called to notify the fs.

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