Lines Matching refs:mh

288 	struct dlm_mhandle *mh = container_of(rcu, struct dlm_mhandle, rcu);  in dlm_mhandle_release()  local
290 dlm_lowcomms_put_msg(mh->msg); in dlm_mhandle_release()
291 dlm_free_mhandle(mh); in dlm_mhandle_release()
295 struct dlm_mhandle *mh) in dlm_mhandle_delete() argument
297 list_del_rcu(&mh->list); in dlm_mhandle_delete()
299 call_rcu(&mh->rcu, dlm_mhandle_release); in dlm_mhandle_delete()
304 struct dlm_mhandle *mh; in dlm_send_queue_flush() local
310 list_for_each_entry_rcu(mh, &node->send_queue, list) { in dlm_send_queue_flush()
311 dlm_mhandle_delete(node, mh); in dlm_send_queue_flush()
427 struct dlm_mhandle *mh; in dlm_send_fin() local
430 mh = dlm_midcomms_get_mhandle(node->nodeid, mb_len, &ppc); in dlm_send_fin()
431 if (!mh) in dlm_send_fin()
435 mh->ack_rcv = ack_rcv; in dlm_send_fin()
445 dlm_midcomms_commit_mhandle(mh, NULL, 0); in dlm_send_fin()
452 struct dlm_mhandle *mh; in dlm_receive_ack() local
455 list_for_each_entry_rcu(mh, &node->send_queue, list) { in dlm_receive_ack()
456 if (before(mh->seq, seq)) { in dlm_receive_ack()
457 if (mh->ack_rcv) in dlm_receive_ack()
458 mh->ack_rcv(node); in dlm_receive_ack()
466 list_for_each_entry_rcu(mh, &node->send_queue, list) { in dlm_receive_ack()
467 if (before(mh->seq, seq)) { in dlm_receive_ack()
468 dlm_mhandle_delete(node, mh); in dlm_receive_ack()
921 struct dlm_mhandle *mh; in dlm_midcomms_unack_msg_resend() local
941 list_for_each_entry_rcu(mh, &node->send_queue, list) { in dlm_midcomms_unack_msg_resend()
942 if (!mh->committed) in dlm_midcomms_unack_msg_resend()
945 ret = dlm_lowcomms_resend_msg(mh->msg); in dlm_midcomms_unack_msg_resend()
948 mh->seq, node->nodeid); in dlm_midcomms_unack_msg_resend()
966 struct dlm_mhandle *mh = data; in midcomms_new_msg_cb() local
968 atomic_inc(&mh->node->send_queue_cnt); in midcomms_new_msg_cb()
970 spin_lock_bh(&mh->node->send_queue_lock); in midcomms_new_msg_cb()
971 list_add_tail_rcu(&mh->list, &mh->node->send_queue); in midcomms_new_msg_cb()
972 spin_unlock_bh(&mh->node->send_queue_lock); in midcomms_new_msg_cb()
974 mh->seq = atomic_fetch_inc(&mh->node->seq_send); in midcomms_new_msg_cb()
977 static struct dlm_msg *dlm_midcomms_get_msg_3_2(struct dlm_mhandle *mh, int nodeid, in dlm_midcomms_get_msg_3_2() argument
984 ppc, midcomms_new_msg_cb, mh); in dlm_midcomms_get_msg_3_2()
989 mh->opts = opts; in dlm_midcomms_get_msg_3_2()
992 dlm_fill_opts_header(opts, len, mh->seq); in dlm_midcomms_get_msg_3_2()
995 mh->inner_p = (const union dlm_packet *)*ppc; in dlm_midcomms_get_msg_3_2()
1006 struct dlm_mhandle *mh; in dlm_midcomms_get_mhandle() local
1018 mh = dlm_allocate_mhandle(); in dlm_midcomms_get_mhandle()
1019 if (!mh) in dlm_midcomms_get_mhandle()
1022 mh->committed = false; in dlm_midcomms_get_mhandle()
1023 mh->ack_rcv = NULL; in dlm_midcomms_get_mhandle()
1024 mh->idx = idx; in dlm_midcomms_get_mhandle()
1025 mh->node = node; in dlm_midcomms_get_mhandle()
1031 dlm_free_mhandle(mh); in dlm_midcomms_get_mhandle()
1040 msg = dlm_midcomms_get_msg_3_2(mh, nodeid, len, ppc); in dlm_midcomms_get_mhandle()
1042 dlm_free_mhandle(mh); in dlm_midcomms_get_mhandle()
1047 dlm_free_mhandle(mh); in dlm_midcomms_get_mhandle()
1052 mh->msg = msg; in dlm_midcomms_get_mhandle()
1059 return mh; in dlm_midcomms_get_mhandle()
1067 static void dlm_midcomms_commit_msg_3_2_trace(const struct dlm_mhandle *mh, in dlm_midcomms_commit_msg_3_2_trace() argument
1070 switch (mh->inner_p->header.h_cmd) { in dlm_midcomms_commit_msg_3_2_trace()
1072 trace_dlm_send_message(mh->node->nodeid, mh->seq, in dlm_midcomms_commit_msg_3_2_trace()
1073 &mh->inner_p->message, in dlm_midcomms_commit_msg_3_2_trace()
1077 trace_dlm_send_rcom(mh->node->nodeid, mh->seq, in dlm_midcomms_commit_msg_3_2_trace()
1078 &mh->inner_p->rcom); in dlm_midcomms_commit_msg_3_2_trace()
1086 static void dlm_midcomms_commit_msg_3_2(struct dlm_mhandle *mh, in dlm_midcomms_commit_msg_3_2() argument
1090 mh->opts->o_nextcmd = mh->inner_p->header.h_cmd; in dlm_midcomms_commit_msg_3_2()
1091 mh->committed = true; in dlm_midcomms_commit_msg_3_2()
1092 dlm_midcomms_commit_msg_3_2_trace(mh, name, namelen); in dlm_midcomms_commit_msg_3_2()
1093 dlm_lowcomms_commit_msg(mh->msg); in dlm_midcomms_commit_msg_3_2()
1100 void dlm_midcomms_commit_mhandle(struct dlm_mhandle *mh, in dlm_midcomms_commit_mhandle() argument
1104 switch (mh->node->version) { in dlm_midcomms_commit_mhandle()
1106 srcu_read_unlock(&nodes_srcu, mh->idx); in dlm_midcomms_commit_mhandle()
1108 dlm_lowcomms_commit_msg(mh->msg); in dlm_midcomms_commit_mhandle()
1109 dlm_lowcomms_put_msg(mh->msg); in dlm_midcomms_commit_mhandle()
1111 dlm_free_mhandle(mh); in dlm_midcomms_commit_mhandle()
1120 dlm_midcomms_commit_msg_3_2(mh, name, namelen); in dlm_midcomms_commit_mhandle()
1121 srcu_read_unlock(&nodes_srcu, mh->idx); in dlm_midcomms_commit_mhandle()
1125 srcu_read_unlock(&nodes_srcu, mh->idx); in dlm_midcomms_commit_mhandle()