Esempio n. 1
0
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);
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
}