diff options
| author | Alexander Aring <aahringo@redhat.com> | 2025-07-23 18:21:56 +0300 |
|---|---|---|
| committer | David Teigland <teigland@redhat.com> | 2025-08-12 19:37:21 +0300 |
| commit | 6f4f4ca5caf73de5e86329547d4527b3e0c08488 (patch) | |
| tree | 5843d3994f8173d87c853de702d0a3882fd33c21 /include/linux | |
| parent | de7b4869b4ecf5790b0e7875c5522d43d7a61d79 (diff) | |
| download | linux-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/linux')
| -rw-r--r-- | include/linux/dlm.h | 5 |
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 |
