ocfs2: fix BUG when o2hb_register_callback fails
PATCH 1/2 ocfs2: fix BUG when o2hb_register_callback fails
In dlm_register_domain_handlers, if o2hb_register_callback fails, it will call dlm_unregister_domain_handlers to unregister. This will trigger the BUG_ON in o2hb_unregister_callback because hc_magic is 0. So we should call o2hb_setup_callback to initialize hc first.
Signed-off-by Joseph Qi <[email protected]>
--- fs/ocfs2/dlm/dlmdomain.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
fs/ocfs2/dlm/dlmdomain.c +3 -2
@@ -1725,12 +1725,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 ); +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 (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 (dlm->name, &dlm->dlm_hb_up);if (status) goto bail;
Signature · 1 line
1.8.4.3