Lines Matching refs:memb
28 struct dlm_member *memb)
35 memb->slot = le16_to_cpu(rf->rf_our_slot);
36 memb->generation = le32_to_cpu(rf->rf_generation);
98 struct dlm_member *memb;
129 list_for_each_entry(memb, &ls->ls_nodes, list) {
131 if (ro->ro_nodeid != memb->nodeid)
133 memb->slot = ro->ro_slot;
134 memb->slot_prev = memb->slot;
138 if (memb->nodeid == our_nodeid) {
139 if (ls->ls_slot && ls->ls_slot != memb->slot) {
142 memb->slot);
147 ls->ls_slot = memb->slot;
150 if (!memb->slot) {
152 memb->nodeid);
160 /* for any nodes that do not support slots, we will not have set memb->slot
161 in wait_status_all(), so memb->slot will remain -1, and we will not
167 struct dlm_member *memb;
176 /* our own memb struct will have slot -1 gen 0 */
178 list_for_each_entry(memb, &ls->ls_nodes, list) {
179 if (memb->nodeid == our_nodeid) {
180 memb->slot = ls->ls_slot;
181 memb->generation = ls->ls_generation;
186 list_for_each_entry(memb, &ls->ls_nodes, list) {
187 if (memb->generation > gen)
188 gen = memb->generation;
192 if (memb->slot == -1)
197 if (!memb->slot)
204 if (!max || max < memb->slot)
205 max = memb->slot;
209 if (memb->slot_prev && memb->slot && memb->slot_prev != memb->slot) {
211 memb->nodeid, memb->slot_prev, memb->slot);
214 memb->slot_prev = memb->slot;
226 list_for_each_entry(memb, &ls->ls_nodes, list) {
227 if (!memb->slot)
230 if (memb->slot > array_size) {
231 log_error(ls, "invalid slot number %d", memb->slot);
236 array[memb->slot - 1].nodeid = memb->nodeid;
237 array[memb->slot - 1].slot = memb->slot;
243 list_for_each_entry(memb, &ls->ls_nodes, list) {
244 if (memb->slot)
251 memb->slot = i + 1;
252 memb->slot_prev = memb->slot;
253 array[i].nodeid = memb->nodeid;
254 array[i].slot = memb->slot;
257 if (!ls->ls_slot && memb->nodeid == our_nodeid)
258 ls->ls_slot = memb->slot;
262 if (!memb->slot) {
292 struct dlm_member *memb = NULL;
298 memb = list_entry(tmp, struct dlm_member, list);
299 if (new->nodeid < memb->nodeid)
303 if (!memb)
316 struct dlm_member *memb;
319 memb = kzalloc(sizeof(*memb), GFP_NOFS);
320 if (!memb)
325 kfree(memb);
329 memb->nodeid = node->nodeid;
330 memb->weight = node->weight;
331 memb->comm_seq = node->comm_seq;
332 add_ordered_member(ls, memb);
339 struct dlm_member *memb;
341 list_for_each_entry(memb, head, list) {
342 if (memb->nodeid == nodeid)
343 return memb;
364 struct dlm_member *memb;
367 memb = list_entry(head->next, struct dlm_member, list);
368 list_del(&memb->list);
369 kfree(memb);
386 struct dlm_member *memb;
392 list_for_each_entry(memb, &ls->ls_nodes, list) {
393 if (memb->weight)
394 total += memb->weight;
409 list_for_each_entry(memb, &ls->ls_nodes, list) {
410 if (!all_zero && !memb->weight)
416 w = memb->weight;
421 array[x++] = memb->nodeid;
431 struct dlm_member *memb;
434 list_for_each_entry(memb, &ls->ls_nodes, list) {
438 error = dlm_rcom_status(ls, memb->nodeid, 0);
455 static void dlm_lsop_recover_slot(struct dlm_ls *ls, struct dlm_member *memb)
470 error = dlm_comm_seq(memb->nodeid, &seq);
472 if (!error && seq == memb->comm_seq)
475 slot.nodeid = memb->nodeid;
476 slot.slot = memb->slot;
483 struct dlm_member *memb;
496 list_for_each_entry(memb, &ls->ls_nodes, list) {
501 slots[i].nodeid = memb->nodeid;
502 slots[i].slot = memb->slot;
526 struct dlm_member *memb, *safe;
533 list_for_each_entry(memb, &ls->ls_nodes_gone, list) {
534 log_rinfo(ls, "prev removed member %d", memb->nodeid);
540 list_for_each_entry_safe(memb, safe, &ls->ls_nodes, list) {
541 node = find_config_node(rv, memb->nodeid);
546 log_rinfo(ls, "remove member %d", memb->nodeid);
550 memb->nodeid, memb->comm_seq, node->comm_seq);
554 list_move(&memb->list, &ls->ls_nodes_gone);
556 dlm_lsop_recover_slot(ls, memb);
569 list_for_each_entry(memb, &ls->ls_nodes, list) {
570 if (low == -1 || memb->nodeid < low)
571 low = memb->nodeid;