ocfs2/cluster: Pin/unpin o2hb regions
This patch adds support for pinning o2hb regions in configfs. Pinning disallows a region to be cleanly stopped as long as it has an active dependent user (read o2dlm). In local heartbeat mode, the region uuid matching the domain name is pinned as long as the o2dlm domain is active. In global heartbeat mode, all regions are pinned as long as there is atleast one dependent user and the region count is 3 or less. All regions are unpinned if the number of dependent users is zero or region count is greater than 3. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:

committed by
Joel Becker

parent
ffee223a9a
commit
58a3158a5d
@@ -1659,8 +1659,8 @@ bail:
|
||||
|
||||
static void dlm_unregister_domain_handlers(struct dlm_ctxt *dlm)
|
||||
{
|
||||
o2hb_unregister_callback(NULL, &dlm->dlm_hb_up);
|
||||
o2hb_unregister_callback(NULL, &dlm->dlm_hb_down);
|
||||
o2hb_unregister_callback(dlm->name, &dlm->dlm_hb_up);
|
||||
o2hb_unregister_callback(dlm->name, &dlm->dlm_hb_down);
|
||||
o2net_unregister_handler_list(&dlm->dlm_domain_handlers);
|
||||
}
|
||||
|
||||
@@ -1672,13 +1672,13 @@ static int dlm_register_domain_handlers(struct dlm_ctxt *dlm)
|
||||
|
||||
o2hb_setup_callback(&dlm->dlm_hb_down, O2HB_NODE_DOWN_CB,
|
||||
dlm_hb_node_down_cb, dlm, DLM_HB_NODE_DOWN_PRI);
|
||||
status = o2hb_register_callback(NULL, &dlm->dlm_hb_down);
|
||||
status = o2hb_register_callback(dlm->name, &dlm->dlm_hb_down);
|
||||
if (status)
|
||||
goto bail;
|
||||
|
||||
o2hb_setup_callback(&dlm->dlm_hb_up, O2HB_NODE_UP_CB,
|
||||
dlm_hb_node_up_cb, dlm, DLM_HB_NODE_UP_PRI);
|
||||
status = o2hb_register_callback(NULL, &dlm->dlm_hb_up);
|
||||
status = o2hb_register_callback(dlm->name, &dlm->dlm_hb_up);
|
||||
if (status)
|
||||
goto bail;
|
||||
|
||||
|
Reference in New Issue
Block a user