Lines Matching refs:reco
106 if (dlm->reco.dead_node != dead_node)
108 dlm->name, dlm->reco.dead_node, dead_node);
109 dlm->reco.dead_node = dead_node;
117 dlm->name, dlm->reco.new_master, master);
118 dlm->reco.new_master = master;
124 clear_bit(dlm->reco.dead_node, dlm->recovery_map);
179 * this will wake the reco thread in one of three places
182 * 3) recovery mastered here, waiting on reco data */
244 dlm->reco.state & DLM_RECO_STATE_ACTIVE ? "ACTIVE" : "inactive",
245 dlm->reco.dead_node, dlm->reco.new_master);
247 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
275 mlog(ML_NOTICE, "%s: reco state, node %u, state=%s\n",
278 list_for_each_entry(res, &dlm->reco.resources, recovering) {
319 ready = (dlm->reco.new_master != O2NM_INVALID_NODE_NUM);
382 * block on the dlm->reco.event when recovery is in progress.
391 in_recovery = !!(dlm->reco.state & DLM_RECO_STATE_ACTIVE);
400 mlog(0, "%s: reco thread %d in recovery: "
403 dlm->reco.state, dlm->reco.new_master,
404 dlm->reco.dead_node);
406 wait_event(dlm->reco.event, !dlm_in_recovery(dlm));
412 BUG_ON(dlm->reco.state & DLM_RECO_STATE_ACTIVE);
414 dlm->name, dlm->reco.dead_node);
415 dlm->reco.state |= DLM_RECO_STATE_ACTIVE;
421 BUG_ON(!(dlm->reco.state & DLM_RECO_STATE_ACTIVE));
422 dlm->reco.state &= ~DLM_RECO_STATE_ACTIVE;
425 wake_up(&dlm->reco.event);
431 "dead node %u in domain %s\n", dlm->reco.new_master,
432 (dlm->node_num == dlm->reco.new_master ? "me" : "he"),
433 dlm->reco.dead_node, dlm->name);
451 if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM &&
452 test_bit(dlm->reco.new_master, dlm->recovery_map)) {
454 dlm->reco.new_master, dlm->reco.dead_node);
460 if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) {
468 } else if (!test_bit(dlm->reco.dead_node, dlm->recovery_map)) {
471 dlm->reco.dead_node);
475 if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) {
483 dlm->reco.dead_node);
491 if (dlm->reco.new_master == dlm->node_num)
494 if (dlm->reco.new_master == O2NM_INVALID_NODE_NUM) {
520 status = dlm_remaster_locks(dlm, dlm->reco.dead_node);
524 "retrying.\n", dlm->name, status, dlm->reco.dead_node);
531 dlm->name, dlm->reco.dead_node, dlm->node_num);
534 dlm->reco.state &= ~DLM_RECO_STATE_FINALIZE;
564 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
643 /* nodes should be sending reco data now
651 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
698 dlm->reco.state |= DLM_RECO_STATE_FINALIZE;
717 jiffies, dlm->reco.dead_node,
718 dlm->node_num, dlm->reco.new_master);
745 memcpy(dlm->reco.node_map, dlm->domain_map, sizeof(dlm->domain_map));
751 num = find_next_bit (dlm->reco.node_map, O2NM_MAX_NODES, num);
765 list_add_tail(&ndata->list, &dlm->reco.node_data);
779 list_splice_init(&dlm->reco.node_data, &tmplist);
833 if (lr->dead_node != dlm->reco.dead_node) {
836 lr->dead_node, dlm->reco.dead_node);
842 BUG_ON(lr->dead_node != dlm->reco.dead_node);
890 if (dead_node != dlm->reco.dead_node ||
891 reco_master != dlm->reco.new_master) {
894 if (dlm->reco.new_master == O2NM_INVALID_NODE_NUM) {
899 dlm->reco.dead_node, dlm->reco.new_master);
901 mlog(ML_NOTICE, "%s: reco state invalid: reco(dead=%u, "
903 dlm->name, dlm->reco.dead_node,
904 dlm->reco.new_master, dead_node, reco_master);
910 * dlm->reco.resources list. now move items from that list
935 list_splice_init(&resources, &dlm->reco.resources);
989 mlog(0, "got DATA DONE: dead_node=%u, reco.dead_node=%u, "
991 dlm->reco.dead_node, done->node_idx, dlm->node_num);
993 mlog_bug_on_msg((done->dead_node != dlm->reco.dead_node),
994 "Got DATA DONE: dead_node=%u, reco.dead_node=%u, "
996 dlm->reco.dead_node, done->node_idx, dlm->node_num);
999 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
1039 mlog(0, "leaving reco data done handler, ret=%d\n", ret);
1051 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) {
2072 list_add_tail(&res->recovering, &dlm->reco.resources);
2146 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) {
2433 if (dlm->reco.new_master == idx) {
2436 if (dlm->reco.state & DLM_RECO_STATE_FINALIZE) {
2442 dlm->reco.state &= ~DLM_RECO_STATE_FINALIZE;
2549 * or b) dlm->reco.new_master gets set to some nodenum
2550 * != O2NM_INVALID_NODE_NUM (another node will do the reco).
2561 dlm->name, jiffies, dlm->reco.dead_node, dlm->node_num);
2577 * just became the reco master */
2579 mlog(0, "%s: got reco EX lock, but %u will "
2581 dlm->reco.new_master);
2588 if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) {
2590 mlog(0, "%s: got reco EX lock, but "
2592 if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM) {
2595 dlm->name, dlm->reco.new_master);
2607 dlm->reco.dead_node, dlm->node_num);
2609 dlm->reco.dead_node);
2639 * reco.new_master != O2NM_INVALID_NODE_NUM
2645 mlog(0, "%s: reco master taking awhile\n",
2649 /* another node has informed this one that it is reco master */
2650 mlog(0, "%s: reco master %u is ready to recover %u\n",
2651 dlm->name, dlm->reco.new_master, dlm->reco.dead_node);
2701 mlog(0, "not sending begin reco to dead node "
2706 mlog(0, "not sending begin reco to self\n");
2711 mlog(0, "attempting to send begin reco msg to %d\n",
2722 "begin reco msg (%d)\n", dlm->name, nodenum, ret);
2745 mlog(ML_ERROR, "begin reco of dlm %s to node %u "
2776 if (dlm->reco.state & DLM_RECO_STATE_FINALIZE) {
2780 dlm->reco.dead_node, dlm->reco.new_master);
2789 dlm->reco.dead_node, dlm->reco.new_master);
2794 if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM) {
2795 if (test_bit(dlm->reco.new_master, dlm->recovery_map)) {
2797 "to %u\n", dlm->name, dlm->reco.new_master,
2801 "to %u\n", dlm->name, dlm->reco.new_master,
2806 if (dlm->reco.dead_node != O2NM_INVALID_NODE_NUM) {
2809 dlm->reco.dead_node, br->node_idx, br->dead_node);
2820 "so setting it in reco map manually\n",
2834 dlm->reco.dead_node, dlm->reco.new_master);
2851 "stage %d\n", dlm->name, dlm->reco.dead_node, stage);
2860 fr.dead_node = dlm->reco.dead_node;
2913 fr->dead_node, dlm->reco.dead_node, dlm->reco.new_master);
2917 if (dlm->reco.new_master != fr->node_idx) {
2920 fr->node_idx, dlm->reco.new_master, fr->dead_node);
2923 if (dlm->reco.dead_node != fr->dead_node) {
2926 fr->node_idx, fr->dead_node, dlm->reco.dead_node);
2933 if (dlm->reco.state & DLM_RECO_STATE_FINALIZE) {
2941 dlm->reco.state |= DLM_RECO_STATE_FINALIZE;
2945 if (!(dlm->reco.state & DLM_RECO_STATE_FINALIZE)) {
2953 dlm->reco.state &= ~DLM_RECO_STATE_FINALIZE;
2960 mlog(0, "%s: recovery done, reco master was %u, dead now %u, master now %u\n",
2961 dlm->name, fr->node_idx, dlm->reco.dead_node, dlm->reco.new_master);