summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Aring <aahringo@redhat.com>2025-07-23 18:21:56 +0300
committerDavid Teigland <teigland@redhat.com>2025-08-12 19:37:21 +0300
commit6f4f4ca5caf73de5e86329547d4527b3e0c08488 (patch)
tree5843d3994f8173d87c853de702d0a3882fd33c21 /include
parentde7b4869b4ecf5790b0e7875c5522d43d7a61d79 (diff)
downloadlinux-6f4f4ca5caf73de5e86329547d4527b3e0c08488.tar.xz
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>
Diffstat (limited to 'include')
-rw-r--r--include/linux/dlm.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/dlm.h b/include/linux/dlm.h
index cc7a36244893..108eb953eb18 100644
--- a/include/linux/dlm.h
+++ b/include/linux/dlm.h
@@ -103,11 +103,16 @@ int dlm_new_lockspace(const char *name, const char *cluster,
* a leave event to the cluster manager, so other nodes will
* not be notified that the node should be removed from the
* list of lockspace members.
+ *
+ * DLM_RELEASE_RECOVER like DLM_RELEASE_NORMAL, but the remaining
+ * nodes will handle the removal of the node as if the node
+ * had failed, e.g. the recover_slot() callback would be used.
*/
#define DLM_RELEASE_NO_LOCKS 0
#define DLM_RELEASE_UNUSED 1
#define DLM_RELEASE_NORMAL 2
#define DLM_RELEASE_NO_EVENT 3
+#define DLM_RELEASE_RECOVER 4
/*
* dlm_release_lockspace