static void ocfs2_do_node_down(int node_num, struct ocfs2_super *osb) { BUG_ON(osb->node_num == node_num); mlog(0, "ocfs2: node down event for %d\n", node_num); if (!osb->dlm) { /* * No DLM means we're not even ready to participate yet. * We check the slots after the DLM comes up, so we will * notice the node death then. We can safely ignore it * here. */ return; } if (ocfs2_node_map_test_bit(osb, &osb->umount_map, node_num)) { /* If a node is in the umount map, then we've been * expecting him to go down and we know ahead of time * that recovery is not necessary. */ ocfs2_node_map_clear_bit(osb, &osb->umount_map, node_num); return; } ocfs2_recovery_thread(osb, node_num); ocfs2_remove_node_from_vote_queues(osb, node_num); }
void ocfs2_do_node_down(int node_num, void *data) { struct ocfs2_super *osb = data; BUG_ON(osb->node_num == node_num); trace_ocfs2_do_node_down(node_num); if (!osb->cconn) { return; } ocfs2_recovery_thread(osb, node_num); }
static void ocfs2_do_node_down(int node_num, struct ocfs2_super *osb) { BUG_ON(osb->node_num == node_num); mlog(0, "ocfs2: node down event for %d\n", node_num); if (!osb->dlm) { /* * No DLM means we're not even ready to participate yet. * We check the slots after the DLM comes up, so we will * notice the node death then. We can safely ignore it * here. */ return; } ocfs2_recovery_thread(osb, node_num); }
void ocfs2_do_node_down(int node_num, void *data) { struct ocfs2_super *osb = data; BUG_ON(osb->node_num == node_num); mlog(0, "ocfs2: node down event for %d\n", node_num); if (!osb->cconn) { /* * No cluster connection means we're not even ready to * participate yet. We check the slots after the cluster * comes up, so we will notice the node death then. We * can safely ignore it here. */ return; } ocfs2_recovery_thread(osb, node_num); }