static void show_ls(struct dlmc_lockspace *ls) { int rv, node_count; printf("name %s\n", ls->name); printf("id 0x%08x\n", ls->global_id); printf("flags 0x%08x %s\n", ls->flags, dlmc_lf_str(ls->flags)); printf("change member %d joined %d remove %d failed %d seq %d,%d\n", ls->cg_prev.member_count, ls->cg_prev.joined_count, ls->cg_prev.remove_count, ls->cg_prev.failed_count, ls->cg_prev.combined_seq, ls->cg_prev.seq); node_count = 0; memset(&nodes, 0, sizeof(nodes)); rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_MEMBERS, MAX_NODES, &node_count, nodes); if (rv < 0) { printf("members error\n"); goto next; } qsort(nodes, node_count, sizeof(struct dlmc_node), node_compare); printf("members "); show_nodeids(node_count, nodes); next: if (!ls->cg_next.seq) return; printf("new change member %d joined %d remove %d failed %d seq %d,%d\n", ls->cg_next.member_count, ls->cg_next.joined_count, ls->cg_next.remove_count, ls->cg_next.failed_count, ls->cg_next.combined_seq, ls->cg_next.seq); if (ls->cg_next.wait_messages) printf("new status wait messages %d\n", ls->cg_next.wait_condition); else printf("new status wait %s\n", condition_str(ls->cg_next.wait_condition)); node_count = 0; memset(&nodes, 0, sizeof(nodes)); rv = dlmc_lockspace_nodes(ls->name, DLMC_NODES_NEXT, MAX_NODES, &node_count, nodes); if (rv < 0) { printf("new members error\n"); return; } qsort(nodes, node_count, sizeof(struct dlmc_node), node_compare); printf("new members "); show_nodeids(node_count, nodes); }
static void show_mg(struct gfsc_mountgroup *mg) { int rv, node_count; printf("name %s\n", mg->name); printf("id 0x%08x\n", mg->global_id); printf("flags 0x%08x %s\n", mg->flags, mg_flags_str(mg->flags)); printf("change member %d joined %d remove %d failed %d seq %d,%d\n", mg->cg_prev.member_count, mg->cg_prev.joined_count, mg->cg_prev.remove_count, mg->cg_prev.failed_count, mg->cg_prev.combined_seq, mg->cg_prev.seq); node_count = 0; memset(&nodes, 0, sizeof(nodes)); rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_MEMBERS, MAX_NODES, &node_count, nodes); if (rv < 0) { printf("members error\n"); goto next; } qsort(nodes, node_count, sizeof(struct gfsc_node), node_compare); printf("members "); show_nodeids(node_count, nodes); next: if (!mg->cg_next.seq) return; printf("new change member %d joined %d remove %d failed %d seq %d,%d\n", mg->cg_next.member_count, mg->cg_next.joined_count, mg->cg_next.remove_count, mg->cg_next.failed_count, mg->cg_next.combined_seq, mg->cg_next.seq); printf("new status wait_messages %d wait_condition %d %s\n", mg->cg_next.wait_messages, mg->cg_next.wait_condition, condition_str(mg->cg_next.wait_condition)); node_count = 0; memset(&nodes, 0, sizeof(nodes)); rv = gfsc_mountgroup_nodes(mg->name, GFSC_NODES_NEXT, MAX_NODES, &node_count, nodes); if (rv < 0) { printf("new members error\n"); return; } qsort(nodes, node_count, sizeof(struct gfsc_node), node_compare); printf("new members "); show_nodeids(node_count, nodes); }