Lines Matching refs:rc

35 	struct dlm_rcom *rc;  in create_rcom()  local
48 rc = (struct dlm_rcom *) mb; in create_rcom()
50 rc->rc_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR); in create_rcom()
51 rc->rc_header.h_lockspace = ls->ls_global_id; in create_rcom()
52 rc->rc_header.h_nodeid = dlm_our_nodeid(); in create_rcom()
53 rc->rc_header.h_length = mb_len; in create_rcom()
54 rc->rc_header.h_cmd = DLM_RCOM; in create_rcom()
56 rc->rc_type = type; in create_rcom()
59 rc->rc_seq = ls->ls_recover_seq; in create_rcom()
63 *rc_ret = rc; in create_rcom()
68 struct dlm_rcom *rc) in send_rcom() argument
70 dlm_rcom_out(rc); in send_rcom()
95 static int check_rcom_config(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid) in check_rcom_config() argument
97 struct rcom_config *rf = (struct rcom_config *) rc->rc_buf; in check_rcom_config()
99 if ((rc->rc_header.h_version & 0xFFFF0000) != DLM_HEADER_MAJOR) { in check_rcom_config()
102 rc->rc_header.h_version); in check_rcom_config()
146 struct dlm_rcom *rc; in dlm_rcom_status() local
153 rc = ls->ls_recover_buf; in dlm_rcom_status()
154 rc->rc_result = dlm_recover_status(ls); in dlm_rcom_status()
159 sizeof(struct rcom_status), &rc, &mh); in dlm_rcom_status()
163 set_rcom_status(ls, (struct rcom_status *)rc->rc_buf, status_flags); in dlm_rcom_status()
165 allow_sync_reply(ls, &rc->rc_id); in dlm_rcom_status()
168 send_rcom(ls, mh, rc); in dlm_rcom_status()
175 rc = ls->ls_recover_buf; in dlm_rcom_status()
177 if (rc->rc_result == -ESRCH) { in dlm_rcom_status()
180 rc->rc_result = 0; in dlm_rcom_status()
183 error = check_rcom_config(ls, rc, nodeid); in dlm_rcom_status()
193 struct dlm_rcom *rc; in receive_rcom_status() local
222 len, &rc, &mh); in receive_rcom_status()
226 rc->rc_id = rc_in->rc_id; in receive_rcom_status()
227 rc->rc_seq_reply = rc_in->rc_seq; in receive_rcom_status()
228 rc->rc_result = status; in receive_rcom_status()
230 set_rcom_config(ls, (struct rcom_config *)rc->rc_buf, num_slots); in receive_rcom_status()
240 rc->rc_result = 0; in receive_rcom_status()
241 set_rcom_config(ls, (struct rcom_config *)rc->rc_buf, 0); in receive_rcom_status()
245 dlm_slots_copy_out(ls, rc); in receive_rcom_status()
249 send_rcom(ls, mh, rc); in receive_rcom_status()
273 struct dlm_rcom *rc; in dlm_rcom_names() local
279 error = create_rcom(ls, nodeid, DLM_RCOM_NAMES, last_len, &rc, &mh); in dlm_rcom_names()
282 memcpy(rc->rc_buf, last_name, last_len); in dlm_rcom_names()
284 allow_sync_reply(ls, &rc->rc_id); in dlm_rcom_names()
287 send_rcom(ls, mh, rc); in dlm_rcom_names()
297 struct dlm_rcom *rc; in receive_rcom_names() local
305 error = create_rcom(ls, nodeid, DLM_RCOM_NAMES_REPLY, outlen, &rc, &mh); in receive_rcom_names()
308 rc->rc_id = rc_in->rc_id; in receive_rcom_names()
309 rc->rc_seq_reply = rc_in->rc_seq; in receive_rcom_names()
311 dlm_copy_master_names(ls, rc_in->rc_buf, inlen, rc->rc_buf, outlen, in receive_rcom_names()
313 send_rcom(ls, mh, rc); in receive_rcom_names()
318 struct dlm_rcom *rc; in dlm_send_rcom_lookup() local
324 &rc, &mh); in dlm_send_rcom_lookup()
327 memcpy(rc->rc_buf, r->res_name, r->res_length); in dlm_send_rcom_lookup()
328 rc->rc_id = (unsigned long) r->res_id; in dlm_send_rcom_lookup()
330 send_rcom(ls, mh, rc); in dlm_send_rcom_lookup()
337 struct dlm_rcom *rc; in dlm_send_rcom_lookup_dump() local
343 &rc, &mh); in dlm_send_rcom_lookup_dump()
346 memcpy(rc->rc_buf, r->res_name, r->res_length); in dlm_send_rcom_lookup_dump()
347 rc->rc_id = 0xFFFFFFFF; in dlm_send_rcom_lookup_dump()
349 send_rcom(ls, mh, rc); in dlm_send_rcom_lookup_dump()
356 struct dlm_rcom *rc; in receive_rcom_lookup() local
361 error = create_rcom(ls, nodeid, DLM_RCOM_LOOKUP_REPLY, 0, &rc, &mh); in receive_rcom_lookup()
375 rc->rc_result = ret_nodeid; in receive_rcom_lookup()
376 rc->rc_id = rc_in->rc_id; in receive_rcom_lookup()
377 rc->rc_seq_reply = rc_in->rc_seq; in receive_rcom_lookup()
379 send_rcom(ls, mh, rc); in receive_rcom_lookup()
420 struct dlm_rcom *rc; in dlm_send_rcom_lock() local
428 error = create_rcom(ls, r->res_nodeid, DLM_RCOM_LOCK, len, &rc, &mh); in dlm_send_rcom_lock()
432 rl = (struct rcom_lock *) rc->rc_buf; in dlm_send_rcom_lock()
434 rc->rc_id = (unsigned long) r; in dlm_send_rcom_lock()
436 send_rcom(ls, mh, rc); in dlm_send_rcom_lock()
444 struct dlm_rcom *rc; in receive_rcom_lock() local
451 sizeof(struct rcom_lock), &rc, &mh); in receive_rcom_lock()
458 memcpy(rc->rc_buf, rc_in->rc_buf, sizeof(struct rcom_lock)); in receive_rcom_lock()
459 rc->rc_id = rc_in->rc_id; in receive_rcom_lock()
460 rc->rc_seq_reply = rc_in->rc_seq; in receive_rcom_lock()
462 send_rcom(ls, mh, rc); in receive_rcom_lock()
470 struct dlm_rcom *rc; in dlm_send_ls_not_ready() local
481 rc = (struct dlm_rcom *) mb; in dlm_send_ls_not_ready()
483 rc->rc_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR); in dlm_send_ls_not_ready()
484 rc->rc_header.h_lockspace = rc_in->rc_header.h_lockspace; in dlm_send_ls_not_ready()
485 rc->rc_header.h_nodeid = dlm_our_nodeid(); in dlm_send_ls_not_ready()
486 rc->rc_header.h_length = mb_len; in dlm_send_ls_not_ready()
487 rc->rc_header.h_cmd = DLM_RCOM; in dlm_send_ls_not_ready()
489 rc->rc_type = DLM_RCOM_STATUS_REPLY; in dlm_send_ls_not_ready()
490 rc->rc_id = rc_in->rc_id; in dlm_send_ls_not_ready()
491 rc->rc_seq_reply = rc_in->rc_seq; in dlm_send_ls_not_ready()
492 rc->rc_result = -ESRCH; in dlm_send_ls_not_ready()
494 rf = (struct rcom_config *) rc->rc_buf; in dlm_send_ls_not_ready()
497 dlm_rcom_out(rc); in dlm_send_ls_not_ready()
548 void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid) in dlm_receive_rcom() argument
555 switch (rc->rc_type) { in dlm_receive_rcom()
588 if (stop && (rc->rc_type != DLM_RCOM_STATUS)) in dlm_receive_rcom()
591 if (reply && (rc->rc_seq_reply != seq)) in dlm_receive_rcom()
600 switch (rc->rc_type) { in dlm_receive_rcom()
602 receive_rcom_status(ls, rc); in dlm_receive_rcom()
606 receive_rcom_names(ls, rc); in dlm_receive_rcom()
610 receive_rcom_lookup(ls, rc); in dlm_receive_rcom()
614 if (rc->rc_header.h_length < lock_size) in dlm_receive_rcom()
616 receive_rcom_lock(ls, rc); in dlm_receive_rcom()
620 receive_sync_reply(ls, rc); in dlm_receive_rcom()
624 receive_sync_reply(ls, rc); in dlm_receive_rcom()
628 receive_rcom_lookup_reply(ls, rc); in dlm_receive_rcom()
632 if (rc->rc_header.h_length < lock_size) in dlm_receive_rcom()
634 dlm_recover_process_copy(ls, rc); in dlm_receive_rcom()
638 log_error(ls, "receive_rcom bad type %d", rc->rc_type); in dlm_receive_rcom()
645 rc->rc_type, in dlm_receive_rcom()
647 (unsigned long long)rc->rc_seq, in dlm_receive_rcom()
648 (unsigned long long)rc->rc_seq_reply, in dlm_receive_rcom()
654 rc->rc_type, nodeid); in dlm_receive_rcom()