rcom.c (b9d2f6ada0083bad46f37a1238fea718b575e0fa) | rcom.c (1151935182b40bbe398905850f6f7f4fbb262e06) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/****************************************************************************** 3******************************************************************************* 4** 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 6** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. 7** 8** --- 207 unchanged lines hidden (view full) --- 216 error = check_rcom_config(ls, rc, nodeid); 217 } 218 219 /* the caller looks at rc_result for the remote recovery status */ 220 out: 221 return error; 222} 223 | 1// SPDX-License-Identifier: GPL-2.0-only 2/****************************************************************************** 3******************************************************************************* 4** 5** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 6** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. 7** 8** --- 207 unchanged lines hidden (view full) --- 216 error = check_rcom_config(ls, rc, nodeid); 217 } 218 219 /* the caller looks at rc_result for the remote recovery status */ 220 out: 221 return error; 222} 223 |
224static void receive_rcom_status(struct dlm_ls *ls, struct dlm_rcom *rc_in, | 224static void receive_rcom_status(struct dlm_ls *ls, 225 const struct dlm_rcom *rc_in, |
225 uint64_t seq) 226{ 227 struct dlm_rcom *rc; 228 struct rcom_status *rs; 229 uint32_t status; 230 int nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 231 int len = sizeof(struct rcom_config); 232 struct dlm_msg *msg; --- 45 unchanged lines hidden (view full) --- 278 279 dlm_slots_copy_out(ls, rc); 280 spin_unlock(&ls->ls_recover_lock); 281 282 do_send: 283 send_rcom_stateless(msg, rc); 284} 285 | 226 uint64_t seq) 227{ 228 struct dlm_rcom *rc; 229 struct rcom_status *rs; 230 uint32_t status; 231 int nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 232 int len = sizeof(struct rcom_config); 233 struct dlm_msg *msg; --- 45 unchanged lines hidden (view full) --- 279 280 dlm_slots_copy_out(ls, rc); 281 spin_unlock(&ls->ls_recover_lock); 282 283 do_send: 284 send_rcom_stateless(msg, rc); 285} 286 |
286static void receive_sync_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) | 287static void receive_sync_reply(struct dlm_ls *ls, const struct dlm_rcom *rc_in) |
287{ 288 spin_lock(&ls->ls_rcom_spin); 289 if (!test_bit(LSFL_RCOM_WAIT, &ls->ls_flags) || 290 le64_to_cpu(rc_in->rc_id) != ls->ls_rcom_seq) { 291 log_debug(ls, "reject reply %d from %d seq %llx expect %llx", 292 le32_to_cpu(rc_in->rc_type), 293 le32_to_cpu(rc_in->rc_header.h_nodeid), 294 (unsigned long long)le64_to_cpu(rc_in->rc_id), --- 33 unchanged lines hidden (view full) --- 328 error = dlm_wait_function(ls, &rcom_response); 329 disallow_sync_reply(ls); 330 if (error == -ETIMEDOUT) 331 goto retry; 332 out: 333 return error; 334} 335 | 288{ 289 spin_lock(&ls->ls_rcom_spin); 290 if (!test_bit(LSFL_RCOM_WAIT, &ls->ls_flags) || 291 le64_to_cpu(rc_in->rc_id) != ls->ls_rcom_seq) { 292 log_debug(ls, "reject reply %d from %d seq %llx expect %llx", 293 le32_to_cpu(rc_in->rc_type), 294 le32_to_cpu(rc_in->rc_header.h_nodeid), 295 (unsigned long long)le64_to_cpu(rc_in->rc_id), --- 33 unchanged lines hidden (view full) --- 329 error = dlm_wait_function(ls, &rcom_response); 330 disallow_sync_reply(ls); 331 if (error == -ETIMEDOUT) 332 goto retry; 333 out: 334 return error; 335} 336 |
336static void receive_rcom_names(struct dlm_ls *ls, struct dlm_rcom *rc_in, | 337static void receive_rcom_names(struct dlm_ls *ls, const struct dlm_rcom *rc_in, |
337 uint64_t seq) 338{ 339 struct dlm_rcom *rc; 340 int error, inlen, outlen, nodeid; 341 struct dlm_msg *msg; 342 343 nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 344 inlen = le16_to_cpu(rc_in->rc_header.h_length) - --- 26 unchanged lines hidden (view full) --- 371 memcpy(rc->rc_buf, r->res_name, r->res_length); 372 rc->rc_id = cpu_to_le64(r->res_id); 373 374 send_rcom(mh, rc); 375 out: 376 return error; 377} 378 | 338 uint64_t seq) 339{ 340 struct dlm_rcom *rc; 341 int error, inlen, outlen, nodeid; 342 struct dlm_msg *msg; 343 344 nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 345 inlen = le16_to_cpu(rc_in->rc_header.h_length) - --- 26 unchanged lines hidden (view full) --- 372 memcpy(rc->rc_buf, r->res_name, r->res_length); 373 rc->rc_id = cpu_to_le64(r->res_id); 374 375 send_rcom(mh, rc); 376 out: 377 return error; 378} 379 |
379static void receive_rcom_lookup(struct dlm_ls *ls, struct dlm_rcom *rc_in, 380 uint64_t seq) | 380static void receive_rcom_lookup(struct dlm_ls *ls, 381 const struct dlm_rcom *rc_in, uint64_t seq) |
381{ 382 struct dlm_rcom *rc; 383 struct dlm_mhandle *mh; 384 int error, ret_nodeid, nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 385 int len = le16_to_cpu(rc_in->rc_header.h_length) - 386 sizeof(struct dlm_rcom); 387 388 /* Old code would send this special id to trigger a debug dump. */ --- 14 unchanged lines hidden (view full) --- 403 ret_nodeid = error; 404 rc->rc_result = cpu_to_le32(ret_nodeid); 405 rc->rc_id = rc_in->rc_id; 406 rc->rc_seq_reply = rc_in->rc_seq; 407 408 send_rcom(mh, rc); 409} 410 | 382{ 383 struct dlm_rcom *rc; 384 struct dlm_mhandle *mh; 385 int error, ret_nodeid, nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 386 int len = le16_to_cpu(rc_in->rc_header.h_length) - 387 sizeof(struct dlm_rcom); 388 389 /* Old code would send this special id to trigger a debug dump. */ --- 14 unchanged lines hidden (view full) --- 404 ret_nodeid = error; 405 rc->rc_result = cpu_to_le32(ret_nodeid); 406 rc->rc_id = rc_in->rc_id; 407 rc->rc_seq_reply = rc_in->rc_seq; 408 409 send_rcom(mh, rc); 410} 411 |
411static void receive_rcom_lookup_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) | 412static void receive_rcom_lookup_reply(struct dlm_ls *ls, 413 const struct dlm_rcom *rc_in) |
412{ 413 dlm_recover_master_reply(ls, rc_in); 414} 415 416static void pack_rcom_lock(struct dlm_rsb *r, struct dlm_lkb *lkb, 417 struct rcom_lock *rl) 418{ 419 memset(rl, 0, sizeof(*rl)); --- 44 unchanged lines hidden (view full) --- 464 rc->rc_id = cpu_to_le64((uintptr_t)r); 465 466 send_rcom(mh, rc); 467 out: 468 return error; 469} 470 471/* needs at least dlm_rcom + rcom_lock */ | 414{ 415 dlm_recover_master_reply(ls, rc_in); 416} 417 418static void pack_rcom_lock(struct dlm_rsb *r, struct dlm_lkb *lkb, 419 struct rcom_lock *rl) 420{ 421 memset(rl, 0, sizeof(*rl)); --- 44 unchanged lines hidden (view full) --- 466 rc->rc_id = cpu_to_le64((uintptr_t)r); 467 468 send_rcom(mh, rc); 469 out: 470 return error; 471} 472 473/* needs at least dlm_rcom + rcom_lock */ |
472static void receive_rcom_lock(struct dlm_ls *ls, struct dlm_rcom *rc_in, | 474static void receive_rcom_lock(struct dlm_ls *ls, const struct dlm_rcom *rc_in, |
473 uint64_t seq) 474{ 475 __le32 rl_remid, rl_result; 476 struct rcom_lock *rl; 477 struct dlm_rcom *rc; 478 struct dlm_mhandle *mh; 479 int error, nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 480 --- 14 unchanged lines hidden (view full) --- 495 rc->rc_seq_reply = rc_in->rc_seq; 496 497 send_rcom(mh, rc); 498} 499 500/* If the lockspace doesn't exist then still send a status message 501 back; it's possible that it just doesn't have its global_id yet. */ 502 | 475 uint64_t seq) 476{ 477 __le32 rl_remid, rl_result; 478 struct rcom_lock *rl; 479 struct dlm_rcom *rc; 480 struct dlm_mhandle *mh; 481 int error, nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid); 482 --- 14 unchanged lines hidden (view full) --- 497 rc->rc_seq_reply = rc_in->rc_seq; 498 499 send_rcom(mh, rc); 500} 501 502/* If the lockspace doesn't exist then still send a status message 503 back; it's possible that it just doesn't have its global_id yet. */ 504 |
503int dlm_send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in) | 505int dlm_send_ls_not_ready(int nodeid, const struct dlm_rcom *rc_in) |
504{ 505 struct dlm_rcom *rc; 506 struct rcom_config *rf; 507 struct dlm_mhandle *mh; 508 char *mb; 509 int mb_len = sizeof(struct dlm_rcom) + sizeof(struct rcom_config); 510 511 mh = dlm_midcomms_get_mhandle(nodeid, mb_len, GFP_NOFS, &mb); --- 61 unchanged lines hidden (view full) --- 573 * dlm_recover_locks_wait() 574 * 575 * recover_status |= DONE 576 */ 577 578/* Called by dlm_recv; corresponds to dlm_receive_message() but special 579 recovery-only comms are sent through here. */ 580 | 506{ 507 struct dlm_rcom *rc; 508 struct rcom_config *rf; 509 struct dlm_mhandle *mh; 510 char *mb; 511 int mb_len = sizeof(struct dlm_rcom) + sizeof(struct rcom_config); 512 513 mh = dlm_midcomms_get_mhandle(nodeid, mb_len, GFP_NOFS, &mb); --- 61 unchanged lines hidden (view full) --- 575 * dlm_recover_locks_wait() 576 * 577 * recover_status |= DONE 578 */ 579 580/* Called by dlm_recv; corresponds to dlm_receive_message() but special 581 recovery-only comms are sent through here. */ 582 |
581void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid) | 583void dlm_receive_rcom(struct dlm_ls *ls, const struct dlm_rcom *rc, int nodeid) |
582{ 583 int lock_size = sizeof(struct dlm_rcom) + sizeof(struct rcom_lock); 584 int stop, reply = 0, names = 0, lookup = 0, lock = 0; 585 uint32_t status; 586 uint64_t seq; 587 588 switch (rc->rc_type) { 589 case cpu_to_le32(DLM_RCOM_STATUS_REPLY): --- 101 unchanged lines hidden --- | 584{ 585 int lock_size = sizeof(struct dlm_rcom) + sizeof(struct rcom_lock); 586 int stop, reply = 0, names = 0, lookup = 0, lock = 0; 587 uint32_t status; 588 uint64_t seq; 589 590 switch (rc->rc_type) { 591 case cpu_to_le32(DLM_RCOM_STATUS_REPLY): --- 101 unchanged lines hidden --- |