Lines Matching refs:memb
30 struct dlm_member *memb) in dlm_slot_save() argument
37 memb->slot = le16_to_cpu(rf->rf_our_slot); in dlm_slot_save()
38 memb->generation = le32_to_cpu(rf->rf_generation); in dlm_slot_save()
100 struct dlm_member *memb; in dlm_slots_copy_in() local
131 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_slots_copy_in()
133 if (ro->ro_nodeid != memb->nodeid) in dlm_slots_copy_in()
135 memb->slot = ro->ro_slot; in dlm_slots_copy_in()
136 memb->slot_prev = memb->slot; in dlm_slots_copy_in()
140 if (memb->nodeid == our_nodeid) { in dlm_slots_copy_in()
141 if (ls->ls_slot && ls->ls_slot != memb->slot) { in dlm_slots_copy_in()
144 memb->slot); in dlm_slots_copy_in()
149 ls->ls_slot = memb->slot; in dlm_slots_copy_in()
152 if (!memb->slot) { in dlm_slots_copy_in()
154 memb->nodeid); in dlm_slots_copy_in()
169 struct dlm_member *memb; in dlm_slots_assign() local
180 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_slots_assign()
181 if (memb->nodeid == our_nodeid) { in dlm_slots_assign()
182 memb->slot = ls->ls_slot; in dlm_slots_assign()
183 memb->generation = ls->ls_generation; in dlm_slots_assign()
188 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_slots_assign()
189 if (memb->generation > gen) in dlm_slots_assign()
190 gen = memb->generation; in dlm_slots_assign()
194 if (memb->slot == -1) in dlm_slots_assign()
199 if (!memb->slot) in dlm_slots_assign()
206 if (!max || max < memb->slot) in dlm_slots_assign()
207 max = memb->slot; in dlm_slots_assign()
211 if (memb->slot_prev && memb->slot && memb->slot_prev != memb->slot) { in dlm_slots_assign()
213 memb->nodeid, memb->slot_prev, memb->slot); in dlm_slots_assign()
216 memb->slot_prev = memb->slot; in dlm_slots_assign()
228 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_slots_assign()
229 if (!memb->slot) in dlm_slots_assign()
232 if (memb->slot > array_size) { in dlm_slots_assign()
233 log_error(ls, "invalid slot number %d", memb->slot); in dlm_slots_assign()
238 array[memb->slot - 1].nodeid = memb->nodeid; in dlm_slots_assign()
239 array[memb->slot - 1].slot = memb->slot; in dlm_slots_assign()
245 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_slots_assign()
246 if (memb->slot) in dlm_slots_assign()
253 memb->slot = i + 1; in dlm_slots_assign()
254 memb->slot_prev = memb->slot; in dlm_slots_assign()
255 array[i].nodeid = memb->nodeid; in dlm_slots_assign()
256 array[i].slot = memb->slot; in dlm_slots_assign()
259 if (!ls->ls_slot && memb->nodeid == our_nodeid) in dlm_slots_assign()
260 ls->ls_slot = memb->slot; in dlm_slots_assign()
264 if (!memb->slot) { in dlm_slots_assign()
294 struct dlm_member *memb = NULL; in add_ordered_member() local
300 memb = list_entry(tmp, struct dlm_member, list); in add_ordered_member()
301 if (new->nodeid < memb->nodeid) in add_ordered_member()
305 if (!memb) in add_ordered_member()
318 struct dlm_member *memb; in dlm_add_member() local
321 memb = kzalloc(sizeof(*memb), GFP_NOFS); in dlm_add_member()
322 if (!memb) in dlm_add_member()
327 kfree(memb); in dlm_add_member()
331 memb->nodeid = node->nodeid; in dlm_add_member()
332 memb->weight = node->weight; in dlm_add_member()
333 memb->comm_seq = node->comm_seq; in dlm_add_member()
334 add_ordered_member(ls, memb); in dlm_add_member()
341 struct dlm_member *memb; in find_memb() local
343 list_for_each_entry(memb, head, list) { in find_memb()
344 if (memb->nodeid == nodeid) in find_memb()
345 return memb; in find_memb()
366 struct dlm_member *memb; in clear_memb_list() local
369 memb = list_entry(head->next, struct dlm_member, list); in clear_memb_list()
370 list_del(&memb->list); in clear_memb_list()
371 kfree(memb); in clear_memb_list()
388 struct dlm_member *memb; in make_member_array() local
394 list_for_each_entry(memb, &ls->ls_nodes, list) { in make_member_array()
395 if (memb->weight) in make_member_array()
396 total += memb->weight; in make_member_array()
411 list_for_each_entry(memb, &ls->ls_nodes, list) { in make_member_array()
412 if (!all_zero && !memb->weight) in make_member_array()
418 w = memb->weight; in make_member_array()
423 array[x++] = memb->nodeid; in make_member_array()
433 struct dlm_member *memb; in ping_members() local
436 list_for_each_entry(memb, &ls->ls_nodes, list) { in ping_members()
440 error = dlm_rcom_status(ls, memb->nodeid, 0); in ping_members()
457 static void dlm_lsop_recover_slot(struct dlm_ls *ls, struct dlm_member *memb) in dlm_lsop_recover_slot() argument
472 error = dlm_comm_seq(memb->nodeid, &seq); in dlm_lsop_recover_slot()
474 if (!error && seq == memb->comm_seq) in dlm_lsop_recover_slot()
477 slot.nodeid = memb->nodeid; in dlm_lsop_recover_slot()
478 slot.slot = memb->slot; in dlm_lsop_recover_slot()
485 struct dlm_member *memb; in dlm_lsop_recover_done() local
498 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_lsop_recover_done()
503 slots[i].nodeid = memb->nodeid; in dlm_lsop_recover_done()
504 slots[i].slot = memb->slot; in dlm_lsop_recover_done()
528 struct dlm_member *memb, *safe; in dlm_recover_members() local
535 list_for_each_entry(memb, &ls->ls_nodes_gone, list) { in dlm_recover_members()
536 log_rinfo(ls, "prev removed member %d", memb->nodeid); in dlm_recover_members()
542 list_for_each_entry_safe(memb, safe, &ls->ls_nodes, list) { in dlm_recover_members()
543 node = find_config_node(rv, memb->nodeid); in dlm_recover_members()
548 log_rinfo(ls, "remove member %d", memb->nodeid); in dlm_recover_members()
552 memb->nodeid, memb->comm_seq, node->comm_seq); in dlm_recover_members()
556 list_move(&memb->list, &ls->ls_nodes_gone); in dlm_recover_members()
558 dlm_lsop_recover_slot(ls, memb); in dlm_recover_members()
571 list_for_each_entry(memb, &ls->ls_nodes, list) { in dlm_recover_members()
572 if (low == -1 || memb->nodeid < low) in dlm_recover_members()
573 low = memb->nodeid; in dlm_recover_members()