Lines Matching refs:reco
104 if (dlm->reco.dead_node != dead_node)
106 dlm->name, dlm->reco.dead_node, dead_node);
107 dlm->reco.dead_node = dead_node;
115 dlm->name, dlm->reco.new_master, master);
116 dlm->reco.new_master = master;
122 clear_bit(dlm->reco.dead_node, dlm->recovery_map);
170 * this will wake the reco thread in one of three places
173 * 3) recovery mastered here, waiting on reco data */
235 dlm->reco.state & DLM_RECO_STATE_ACTIVE ? "ACTIVE" : "inactive",
236 dlm->reco.dead_node, dlm->reco.new_master);
238 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
266 mlog(ML_NOTICE, "%s: reco state, node %u, state=%s\n",
269 list_for_each_entry(res, &dlm->reco.resources, recovering) {
310 ready = (dlm->reco.new_master != O2NM_INVALID_NODE_NUM);
373 * block on the dlm->reco.event when recovery is in progress.
382 in_recovery = !!(dlm->reco.state & DLM_RECO_STATE_ACTIVE);
391 mlog(0, "%s: reco thread %d in recovery: "
394 dlm->reco.state, dlm->reco.new_master,
395 dlm->reco.dead_node);
397 wait_event(dlm->reco.event, !dlm_in_recovery(dlm));
403 BUG_ON(dlm->reco.state & DLM_RECO_STATE_ACTIVE);
405 dlm->name, dlm->reco.dead_node);
406 dlm->reco.state |= DLM_RECO_STATE_ACTIVE;
412 BUG_ON(!(dlm->reco.state & DLM_RECO_STATE_ACTIVE));
413 dlm->reco.state &= ~DLM_RECO_STATE_ACTIVE;
416 wake_up(&dlm->reco.event);
422 "dead node %u in domain %s\n", dlm->reco.new_master,
423 (dlm->node_num == dlm->reco.new_master ? "me" : "he"),
424 dlm->reco.dead_node, dlm->name);
442 if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM &&
443 test_bit(dlm->reco.new_master, dlm->recovery_map)) {
445 dlm->reco.new_master, dlm->reco.dead_node);
451 if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) {
459 } else if (!test_bit(dlm->reco.dead_node, dlm->recovery_map)) {
462 dlm->reco.dead_node);
466 if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) {
474 dlm->reco.dead_node);
482 if (dlm->reco.new_master == dlm->node_num)
485 if (dlm->reco.new_master == O2NM_INVALID_NODE_NUM) {
511 status = dlm_remaster_locks(dlm, dlm->reco.dead_node);
515 "retrying.\n", dlm->name, status, dlm->reco.dead_node);
522 dlm->name, dlm->reco.dead_node, dlm->node_num);
525 dlm->reco.state &= ~DLM_RECO_STATE_FINALIZE;
555 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
634 /* nodes should be sending reco data now
642 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
689 dlm->reco.state |= DLM_RECO_STATE_FINALIZE;
708 jiffies, dlm->reco.dead_node,
709 dlm->node_num, dlm->reco.new_master);
736 bitmap_copy(dlm->reco.node_map, dlm->domain_map, O2NM_MAX_NODES);
742 num = find_next_bit (dlm->reco.node_map, O2NM_MAX_NODES, num);
756 list_add_tail(&ndata->list, &dlm->reco.node_data);
770 list_splice_init(&dlm->reco.node_data, &tmplist);
824 if (lr->dead_node != dlm->reco.dead_node) {
827 lr->dead_node, dlm->reco.dead_node);
833 BUG_ON(lr->dead_node != dlm->reco.dead_node);
881 if (dead_node != dlm->reco.dead_node ||
882 reco_master != dlm->reco.new_master) {
885 if (dlm->reco.new_master == O2NM_INVALID_NODE_NUM) {
890 dlm->reco.dead_node, dlm->reco.new_master);
892 mlog(ML_NOTICE, "%s: reco state invalid: reco(dead=%u, "
894 dlm->name, dlm->reco.dead_node,
895 dlm->reco.new_master, dead_node, reco_master);
901 * dlm->reco.resources list. now move items from that list
926 list_splice_init(&resources, &dlm->reco.resources);
980 mlog(0, "got DATA DONE: dead_node=%u, reco.dead_node=%u, "
982 dlm->reco.dead_node, done->node_idx, dlm->node_num);
984 mlog_bug_on_msg((done->dead_node != dlm->reco.dead_node),
985 "Got DATA DONE: dead_node=%u, reco.dead_node=%u, "
987 dlm->reco.dead_node, done->node_idx, dlm->node_num);
990 list_for_each_entry(ndata, &dlm->reco.node_data, list) {
1030 mlog(0, "leaving reco data done handler, ret=%d\n", ret);
1042 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) {
2063 list_add_tail(&res->recovering, &dlm->reco.resources);
2137 list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) {
2424 if (dlm->reco.new_master == idx) {
2427 if (dlm->reco.state & DLM_RECO_STATE_FINALIZE) {
2433 dlm->reco.state &= ~DLM_RECO_STATE_FINALIZE;
2540 * or b) dlm->reco.new_master gets set to some nodenum
2541 * != O2NM_INVALID_NODE_NUM (another node will do the reco).
2552 dlm->name, jiffies, dlm->reco.dead_node, dlm->node_num);
2568 * just became the reco master */
2570 mlog(0, "%s: got reco EX lock, but %u will "
2572 dlm->reco.new_master);
2579 if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) {
2581 mlog(0, "%s: got reco EX lock, but "
2583 if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM) {
2586 dlm->name, dlm->reco.new_master);
2598 dlm->reco.dead_node, dlm->node_num);
2600 dlm->reco.dead_node);
2630 * reco.new_master != O2NM_INVALID_NODE_NUM
2636 mlog(0, "%s: reco master taking awhile\n",
2640 /* another node has informed this one that it is reco master */
2641 mlog(0, "%s: reco master %u is ready to recover %u\n",
2642 dlm->name, dlm->reco.new_master, dlm->reco.dead_node);
2692 mlog(0, "not sending begin reco to dead node "
2697 mlog(0, "not sending begin reco to self\n");
2701 mlog(0, "attempting to send begin reco msg to %d\n",
2712 "begin reco msg (%d)\n", dlm->name, nodenum, ret);
2735 mlog(ML_ERROR, "begin reco of dlm %s to node %u "
2766 if (dlm->reco.state & DLM_RECO_STATE_FINALIZE) {
2770 dlm->reco.dead_node, dlm->reco.new_master);
2779 dlm->reco.dead_node, dlm->reco.new_master);
2784 if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM) {
2785 if (test_bit(dlm->reco.new_master, dlm->recovery_map)) {
2787 "to %u\n", dlm->name, dlm->reco.new_master,
2791 "to %u\n", dlm->name, dlm->reco.new_master,
2796 if (dlm->reco.dead_node != O2NM_INVALID_NODE_NUM) {
2799 dlm->reco.dead_node, br->node_idx, br->dead_node);
2810 "so setting it in reco map manually\n",
2824 dlm->reco.dead_node, dlm->reco.new_master);
2841 "stage %d\n", dlm->name, dlm->reco.dead_node, stage);
2850 fr.dead_node = dlm->reco.dead_node;
2903 fr->dead_node, dlm->reco.dead_node, dlm->reco.new_master);
2907 if (dlm->reco.new_master != fr->node_idx) {
2910 fr->node_idx, dlm->reco.new_master, fr->dead_node);
2913 if (dlm->reco.dead_node != fr->dead_node) {
2916 fr->node_idx, fr->dead_node, dlm->reco.dead_node);
2923 if (dlm->reco.state & DLM_RECO_STATE_FINALIZE) {
2931 dlm->reco.state |= DLM_RECO_STATE_FINALIZE;
2935 if (!(dlm->reco.state & DLM_RECO_STATE_FINALIZE)) {
2943 dlm->reco.state &= ~DLM_RECO_STATE_FINALIZE;
2950 mlog(0, "%s: recovery done, reco master was %u, dead now %u, master now %u\n",
2951 dlm->name, fr->node_idx, dlm->reco.dead_node, dlm->reco.new_master);