midcomms.c (a8449f232ee316208185ef7fbedc4a2c48da2a34) midcomms.c (3428785a65dabf05bc899b6c5334984e98286184)
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) 2004-2021 Red Hat, Inc. All rights reserved.
7**
8**

--- 366 unchanged lines hidden (view full) ---

375
376 msg = dlm_lowcomms_new_msg(nodeid, mb_len, GFP_NOFS, &ppc,
377 NULL, NULL);
378 if (!msg)
379 return -ENOMEM;
380
381 m_header = (struct dlm_header *)ppc;
382
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) 2004-2021 Red Hat, Inc. All rights reserved.
7**
8**

--- 366 unchanged lines hidden (view full) ---

375
376 msg = dlm_lowcomms_new_msg(nodeid, mb_len, GFP_NOFS, &ppc,
377 NULL, NULL);
378 if (!msg)
379 return -ENOMEM;
380
381 m_header = (struct dlm_header *)ppc;
382
383 m_header->h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
384 m_header->h_nodeid = dlm_our_nodeid();
385 m_header->h_length = mb_len;
383 m_header->h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
384 m_header->h_nodeid = cpu_to_le32(dlm_our_nodeid());
385 m_header->h_length = cpu_to_le16(mb_len);
386 m_header->h_cmd = DLM_ACK;
386 m_header->h_cmd = DLM_ACK;
387 m_header->u.h_seq = seq;
387 m_header->u.h_seq = cpu_to_le32(seq);
388
388
389 header_out(m_header);
390 dlm_lowcomms_commit_msg(msg);
391 dlm_lowcomms_put_msg(msg);
392
393 return 0;
394}
395
396static int dlm_send_fin(struct midcomms_node *node,
397 void (*ack_rcv)(struct midcomms_node *node))

--- 6 unchanged lines hidden (view full) ---

404 mh = dlm_midcomms_get_mhandle(node->nodeid, mb_len, GFP_NOFS, &ppc);
405 if (!mh)
406 return -ENOMEM;
407
408 mh->ack_rcv = ack_rcv;
409
410 m_header = (struct dlm_header *)ppc;
411
389 dlm_lowcomms_commit_msg(msg);
390 dlm_lowcomms_put_msg(msg);
391
392 return 0;
393}
394
395static int dlm_send_fin(struct midcomms_node *node,
396 void (*ack_rcv)(struct midcomms_node *node))

--- 6 unchanged lines hidden (view full) ---

403 mh = dlm_midcomms_get_mhandle(node->nodeid, mb_len, GFP_NOFS, &ppc);
404 if (!mh)
405 return -ENOMEM;
406
407 mh->ack_rcv = ack_rcv;
408
409 m_header = (struct dlm_header *)ppc;
410
412 m_header->h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
413 m_header->h_nodeid = dlm_our_nodeid();
414 m_header->h_length = mb_len;
411 m_header->h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
412 m_header->h_nodeid = cpu_to_le32(dlm_our_nodeid());
413 m_header->h_length = cpu_to_le16(mb_len);
415 m_header->h_cmd = DLM_FIN;
416
414 m_header->h_cmd = DLM_FIN;
415
417 header_out(m_header);
418
419 pr_debug("sending fin msg to node %d\n", node->nodeid);
420 dlm_midcomms_commit_mhandle(mh);
421 set_bit(DLM_NODE_FLAG_STOP_TX, &node->flags);
422
423 return 0;
424}
425
426static void dlm_receive_ack(struct midcomms_node *node, uint32_t seq)

--- 588 unchanged lines hidden (view full) ---

1015 rcu_read_unlock();
1016 srcu_read_unlock(&nodes_srcu, idx);
1017}
1018
1019static void dlm_fill_opts_header(struct dlm_opts *opts, uint16_t inner_len,
1020 uint32_t seq)
1021{
1022 opts->o_header.h_cmd = DLM_OPTS;
416 pr_debug("sending fin msg to node %d\n", node->nodeid);
417 dlm_midcomms_commit_mhandle(mh);
418 set_bit(DLM_NODE_FLAG_STOP_TX, &node->flags);
419
420 return 0;
421}
422
423static void dlm_receive_ack(struct midcomms_node *node, uint32_t seq)

--- 588 unchanged lines hidden (view full) ---

1012 rcu_read_unlock();
1013 srcu_read_unlock(&nodes_srcu, idx);
1014}
1015
1016static void dlm_fill_opts_header(struct dlm_opts *opts, uint16_t inner_len,
1017 uint32_t seq)
1018{
1019 opts->o_header.h_cmd = DLM_OPTS;
1023 opts->o_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
1024 opts->o_header.h_nodeid = dlm_our_nodeid();
1025 opts->o_header.h_length = DLM_MIDCOMMS_OPT_LEN + inner_len;
1026 opts->o_header.u.h_seq = seq;
1027 header_out(&opts->o_header);
1020 opts->o_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
1021 opts->o_header.h_nodeid = cpu_to_le32(dlm_our_nodeid());
1022 opts->o_header.h_length = cpu_to_le16(DLM_MIDCOMMS_OPT_LEN + inner_len);
1023 opts->o_header.u.h_seq = cpu_to_le32(seq);
1028}
1029
1030static void midcomms_new_msg_cb(void *data)
1031{
1032 struct dlm_mhandle *mh = data;
1033
1034 atomic_inc(&mh->node->send_queue_cnt);
1035

--- 424 unchanged lines hidden (view full) ---

1460
1461 switch (h->h_version) {
1462 case cpu_to_le32(DLM_VERSION_3_1):
1463 break;
1464 default:
1465 switch (h->h_cmd) {
1466 case DLM_OPTS:
1467 if (!h->u.h_seq)
1024}
1025
1026static void midcomms_new_msg_cb(void *data)
1027{
1028 struct dlm_mhandle *mh = data;
1029
1030 atomic_inc(&mh->node->send_queue_cnt);
1031

--- 424 unchanged lines hidden (view full) ---

1456
1457 switch (h->h_version) {
1458 case cpu_to_le32(DLM_VERSION_3_1):
1459 break;
1460 default:
1461 switch (h->h_cmd) {
1462 case DLM_OPTS:
1463 if (!h->u.h_seq)
1468 h->u.h_seq = rd->node->seq_send++;
1464 h->u.h_seq = cpu_to_le32(rd->node->seq_send++);
1469 break;
1470 default:
1471 break;
1472 }
1473 break;
1474 }
1475}
1476

--- 20 unchanged lines hidden ---
1465 break;
1466 default:
1467 break;
1468 }
1469 break;
1470 }
1471}
1472

--- 20 unchanged lines hidden ---