Lines Matching refs:ms
89 struct dlm_message *ms);
90 static int receive_extralen(struct dlm_message *ms);
1512 struct dlm_message *ms) in _remove_from_waiters() argument
1551 is_overlap_cancel(lkb) && ms && !ms->m_result) { in _remove_from_waiters()
1569 lkb->lkb_id, ms ? ms->m_header.h_nodeid : 0, lkb->lkb_remid, in _remove_from_waiters()
1610 static int remove_from_waiters_ms(struct dlm_lkb *lkb, struct dlm_message *ms) in remove_from_waiters_ms() argument
1615 if (ms->m_flags != DLM_IFL_STUB_MS) in remove_from_waiters_ms()
1617 error = _remove_from_waiters(lkb, ms->m_type, ms); in remove_from_waiters_ms()
1618 if (ms->m_flags != DLM_IFL_STUB_MS) in remove_from_waiters_ms()
2029 struct dlm_message *ms) in set_lvb_lock_pc() argument
2041 int len = receive_extralen(ms); in set_lvb_lock_pc()
2044 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in set_lvb_lock_pc()
2045 lkb->lkb_lvbseq = ms->m_lvbseq; in set_lvb_lock_pc()
2136 struct dlm_message *ms) in grant_lock_pc() argument
2138 set_lvb_lock_pc(r, lkb, ms); in grant_lock_pc()
2174 static void munge_altmode(struct dlm_lkb *lkb, struct dlm_message *ms) in munge_altmode() argument
2176 if (ms->m_type != DLM_MSG_REQUEST_REPLY && in munge_altmode()
2177 ms->m_type != DLM_MSG_GRANT) { in munge_altmode()
2179 lkb->lkb_id, ms->m_type); in munge_altmode()
3531 struct dlm_message *ms; in _create_message() local
3545 ms = (struct dlm_message *) mb; in _create_message()
3547 ms->m_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR); in _create_message()
3548 ms->m_header.h_lockspace = ls->ls_global_id; in _create_message()
3549 ms->m_header.h_nodeid = dlm_our_nodeid(); in _create_message()
3550 ms->m_header.h_length = mb_len; in _create_message()
3551 ms->m_header.h_cmd = DLM_MSG; in _create_message()
3553 ms->m_type = mstype; in _create_message()
3556 *ms_ret = ms; in _create_message()
3590 static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms) in send_message() argument
3592 dlm_message_out(ms); in send_message()
3598 struct dlm_message *ms) in send_args() argument
3600 ms->m_nodeid = lkb->lkb_nodeid; in send_args()
3601 ms->m_pid = lkb->lkb_ownpid; in send_args()
3602 ms->m_lkid = lkb->lkb_id; in send_args()
3603 ms->m_remid = lkb->lkb_remid; in send_args()
3604 ms->m_exflags = lkb->lkb_exflags; in send_args()
3605 ms->m_sbflags = lkb->lkb_sbflags; in send_args()
3606 ms->m_flags = lkb->lkb_flags; in send_args()
3607 ms->m_lvbseq = lkb->lkb_lvbseq; in send_args()
3608 ms->m_status = lkb->lkb_status; in send_args()
3609 ms->m_grmode = lkb->lkb_grmode; in send_args()
3610 ms->m_rqmode = lkb->lkb_rqmode; in send_args()
3611 ms->m_hash = r->res_hash; in send_args()
3617 ms->m_asts |= DLM_CB_BAST; in send_args()
3619 ms->m_asts |= DLM_CB_CAST; in send_args()
3624 switch (ms->m_type) { in send_args()
3627 memcpy(ms->m_extra, r->res_name, r->res_length); in send_args()
3636 memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen); in send_args()
3643 struct dlm_message *ms; in send_common() local
3653 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh); in send_common()
3657 send_args(r, lkb, ms); in send_common()
3659 error = send_message(mh, ms); in send_common()
3708 struct dlm_message *ms; in send_grant() local
3714 error = create_message(r, lkb, to_nodeid, DLM_MSG_GRANT, &ms, &mh); in send_grant()
3718 send_args(r, lkb, ms); in send_grant()
3720 ms->m_result = 0; in send_grant()
3722 error = send_message(mh, ms); in send_grant()
3729 struct dlm_message *ms; in send_bast() local
3735 error = create_message(r, NULL, to_nodeid, DLM_MSG_BAST, &ms, &mh); in send_bast()
3739 send_args(r, lkb, ms); in send_bast()
3741 ms->m_bastmode = mode; in send_bast()
3743 error = send_message(mh, ms); in send_bast()
3750 struct dlm_message *ms; in send_lookup() local
3760 error = create_message(r, NULL, to_nodeid, DLM_MSG_LOOKUP, &ms, &mh); in send_lookup()
3764 send_args(r, lkb, ms); in send_lookup()
3766 error = send_message(mh, ms); in send_lookup()
3778 struct dlm_message *ms; in send_remove() local
3784 error = create_message(r, NULL, to_nodeid, DLM_MSG_REMOVE, &ms, &mh); in send_remove()
3788 memcpy(ms->m_extra, r->res_name, r->res_length); in send_remove()
3789 ms->m_hash = r->res_hash; in send_remove()
3791 error = send_message(mh, ms); in send_remove()
3799 struct dlm_message *ms; in send_common_reply() local
3805 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh); in send_common_reply()
3809 send_args(r, lkb, ms); in send_common_reply()
3811 ms->m_result = rv; in send_common_reply()
3813 error = send_message(mh, ms); in send_common_reply()
3842 struct dlm_message *ms; in send_lookup_reply() local
3846 error = create_message(r, NULL, nodeid, DLM_MSG_LOOKUP_REPLY, &ms, &mh); in send_lookup_reply()
3850 ms->m_lkid = ms_in->m_lkid; in send_lookup_reply()
3851 ms->m_result = rv; in send_lookup_reply()
3852 ms->m_nodeid = ret_nodeid; in send_lookup_reply()
3854 error = send_message(mh, ms); in send_lookup_reply()
3863 static void receive_flags(struct dlm_lkb *lkb, struct dlm_message *ms) in receive_flags() argument
3865 lkb->lkb_exflags = ms->m_exflags; in receive_flags()
3866 lkb->lkb_sbflags = ms->m_sbflags; in receive_flags()
3868 (ms->m_flags & 0x0000FFFF); in receive_flags()
3871 static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in receive_flags_reply() argument
3873 if (ms->m_flags == DLM_IFL_STUB_MS) in receive_flags_reply()
3876 lkb->lkb_sbflags = ms->m_sbflags; in receive_flags_reply()
3878 (ms->m_flags & 0x0000FFFF); in receive_flags_reply()
3881 static int receive_extralen(struct dlm_message *ms) in receive_extralen() argument
3883 return (ms->m_header.h_length - sizeof(struct dlm_message)); in receive_extralen()
3887 struct dlm_message *ms) in receive_lvb() argument
3896 len = receive_extralen(ms); in receive_lvb()
3899 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in receive_lvb()
3915 struct dlm_message *ms) in receive_request_args() argument
3917 lkb->lkb_nodeid = ms->m_header.h_nodeid; in receive_request_args()
3918 lkb->lkb_ownpid = ms->m_pid; in receive_request_args()
3919 lkb->lkb_remid = ms->m_lkid; in receive_request_args()
3921 lkb->lkb_rqmode = ms->m_rqmode; in receive_request_args()
3923 lkb->lkb_bastfn = (ms->m_asts & DLM_CB_BAST) ? &fake_bastfn : NULL; in receive_request_args()
3924 lkb->lkb_astfn = (ms->m_asts & DLM_CB_CAST) ? &fake_astfn : NULL; in receive_request_args()
3937 struct dlm_message *ms) in receive_convert_args() argument
3942 if (receive_lvb(ls, lkb, ms)) in receive_convert_args()
3945 lkb->lkb_rqmode = ms->m_rqmode; in receive_convert_args()
3946 lkb->lkb_lvbseq = ms->m_lvbseq; in receive_convert_args()
3952 struct dlm_message *ms) in receive_unlock_args() argument
3954 if (receive_lvb(ls, lkb, ms)) in receive_unlock_args()
3962 static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms) in setup_stub_lkb() argument
3965 lkb->lkb_nodeid = ms->m_header.h_nodeid; in setup_stub_lkb()
3966 lkb->lkb_remid = ms->m_lkid; in setup_stub_lkb()
3972 static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms) in validate_message() argument
3974 int from = ms->m_header.h_nodeid; in validate_message()
3977 switch (ms->m_type) { in validate_message()
4008 ms->m_type, from, lkb->lkb_id, lkb->lkb_remid, in validate_message()
4016 struct dlm_message *ms; in send_repeat_remove() local
4056 dir_nodeid, DLM_MSG_REMOVE, &ms, &mh); in send_repeat_remove()
4060 memcpy(ms->m_extra, name, len); in send_repeat_remove()
4061 ms->m_hash = hash; in send_repeat_remove()
4063 send_message(mh, ms); in send_repeat_remove()
4071 static int receive_request(struct dlm_ls *ls, struct dlm_message *ms) in receive_request() argument
4078 from_nodeid = ms->m_header.h_nodeid; in receive_request()
4084 receive_flags(lkb, ms); in receive_request()
4086 error = receive_request_args(ls, lkb, ms); in receive_request()
4098 namelen = receive_extralen(ms); in receive_request()
4100 error = find_rsb(ls, ms->m_extra, namelen, from_nodeid, in receive_request()
4151 ms->m_lkid, from_nodeid, error); in receive_request()
4155 send_repeat_remove(ls, ms->m_extra, namelen); in receive_request()
4159 setup_stub_lkb(ls, ms); in receive_request()
4164 static int receive_convert(struct dlm_ls *ls, struct dlm_message *ms) in receive_convert() argument
4170 error = find_lkb(ls, ms->m_remid, &lkb); in receive_convert()
4174 if (lkb->lkb_remid != ms->m_lkid) { in receive_convert()
4178 ms->m_header.h_nodeid, ms->m_lkid); in receive_convert()
4188 error = validate_message(lkb, ms); in receive_convert()
4192 receive_flags(lkb, ms); in receive_convert()
4194 error = receive_convert_args(ls, lkb, ms); in receive_convert()
4213 setup_stub_lkb(ls, ms); in receive_convert()
4218 static int receive_unlock(struct dlm_ls *ls, struct dlm_message *ms) in receive_unlock() argument
4224 error = find_lkb(ls, ms->m_remid, &lkb); in receive_unlock()
4228 if (lkb->lkb_remid != ms->m_lkid) { in receive_unlock()
4231 ms->m_header.h_nodeid, ms->m_lkid); in receive_unlock()
4241 error = validate_message(lkb, ms); in receive_unlock()
4245 receive_flags(lkb, ms); in receive_unlock()
4247 error = receive_unlock_args(ls, lkb, ms); in receive_unlock()
4263 setup_stub_lkb(ls, ms); in receive_unlock()
4268 static int receive_cancel(struct dlm_ls *ls, struct dlm_message *ms) in receive_cancel() argument
4274 error = find_lkb(ls, ms->m_remid, &lkb); in receive_cancel()
4278 receive_flags(lkb, ms); in receive_cancel()
4285 error = validate_message(lkb, ms); in receive_cancel()
4299 setup_stub_lkb(ls, ms); in receive_cancel()
4304 static int receive_grant(struct dlm_ls *ls, struct dlm_message *ms) in receive_grant() argument
4310 error = find_lkb(ls, ms->m_remid, &lkb); in receive_grant()
4319 error = validate_message(lkb, ms); in receive_grant()
4323 receive_flags_reply(lkb, ms); in receive_grant()
4325 munge_altmode(lkb, ms); in receive_grant()
4326 grant_lock_pc(r, lkb, ms); in receive_grant()
4335 static int receive_bast(struct dlm_ls *ls, struct dlm_message *ms) in receive_bast() argument
4341 error = find_lkb(ls, ms->m_remid, &lkb); in receive_bast()
4350 error = validate_message(lkb, ms); in receive_bast()
4354 queue_bast(r, lkb, ms->m_bastmode); in receive_bast()
4355 lkb->lkb_highbast = ms->m_bastmode; in receive_bast()
4363 static void receive_lookup(struct dlm_ls *ls, struct dlm_message *ms) in receive_lookup() argument
4367 from_nodeid = ms->m_header.h_nodeid; in receive_lookup()
4370 len = receive_extralen(ms); in receive_lookup()
4372 error = dlm_master_lookup(ls, from_nodeid, ms->m_extra, len, 0, in receive_lookup()
4377 receive_request(ls, ms); in receive_lookup()
4380 send_lookup_reply(ls, ms, ret_nodeid, error); in receive_lookup()
4383 static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms) in receive_remove() argument
4390 from_nodeid = ms->m_header.h_nodeid; in receive_remove()
4392 len = receive_extralen(ms); in receive_remove()
4400 dir_nodeid = dlm_hash2nodeid(ls, ms->m_hash); in receive_remove()
4417 memcpy(name, ms->m_extra, len); in receive_remove()
4471 static void receive_purge(struct dlm_ls *ls, struct dlm_message *ms) in receive_purge() argument
4473 do_purge(ls, ms->m_nodeid, ms->m_pid); in receive_purge()
4476 static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_request_reply() argument
4481 int from_nodeid = ms->m_header.h_nodeid; in receive_request_reply()
4483 error = find_lkb(ls, ms->m_remid, &lkb); in receive_request_reply()
4491 error = validate_message(lkb, ms); in receive_request_reply()
4499 lkb->lkb_id, from_nodeid, ms->m_lkid, ms->m_result); in receive_request_reply()
4513 result = ms->m_result; in receive_request_reply()
4526 receive_flags_reply(lkb, ms); in receive_request_reply()
4527 lkb->lkb_remid = ms->m_lkid; in receive_request_reply()
4529 munge_altmode(lkb, ms); in receive_request_reply()
4534 grant_lock_pc(r, lkb, ms); in receive_request_reply()
4597 struct dlm_message *ms) in __receive_convert_reply() argument
4600 switch (ms->m_result) { in __receive_convert_reply()
4607 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4614 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4624 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4627 grant_lock_pc(r, lkb, ms); in __receive_convert_reply()
4633 lkb->lkb_id, ms->m_header.h_nodeid, ms->m_lkid, in __receive_convert_reply()
4634 ms->m_result); in __receive_convert_reply()
4640 static void _receive_convert_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_convert_reply() argument
4648 error = validate_message(lkb, ms); in _receive_convert_reply()
4653 error = remove_from_waiters_ms(lkb, ms); in _receive_convert_reply()
4657 __receive_convert_reply(r, lkb, ms); in _receive_convert_reply()
4663 static int receive_convert_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_convert_reply() argument
4668 error = find_lkb(ls, ms->m_remid, &lkb); in receive_convert_reply()
4672 _receive_convert_reply(lkb, ms); in receive_convert_reply()
4677 static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_unlock_reply() argument
4685 error = validate_message(lkb, ms); in _receive_unlock_reply()
4690 error = remove_from_waiters_ms(lkb, ms); in _receive_unlock_reply()
4696 switch (ms->m_result) { in _receive_unlock_reply()
4698 receive_flags_reply(lkb, ms); in _receive_unlock_reply()
4706 lkb->lkb_id, ms->m_result); in _receive_unlock_reply()
4713 static int receive_unlock_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_unlock_reply() argument
4718 error = find_lkb(ls, ms->m_remid, &lkb); in receive_unlock_reply()
4722 _receive_unlock_reply(lkb, ms); in receive_unlock_reply()
4727 static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_cancel_reply() argument
4735 error = validate_message(lkb, ms); in _receive_cancel_reply()
4740 error = remove_from_waiters_ms(lkb, ms); in _receive_cancel_reply()
4746 switch (ms->m_result) { in _receive_cancel_reply()
4748 receive_flags_reply(lkb, ms); in _receive_cancel_reply()
4756 lkb->lkb_id, ms->m_result); in _receive_cancel_reply()
4763 static int receive_cancel_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_cancel_reply() argument
4768 error = find_lkb(ls, ms->m_remid, &lkb); in receive_cancel_reply()
4772 _receive_cancel_reply(lkb, ms); in receive_cancel_reply()
4777 static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_lookup_reply() argument
4784 error = find_lkb(ls, ms->m_lkid, &lkb); in receive_lookup_reply()
4786 log_error(ls, "receive_lookup_reply no lkid %x", ms->m_lkid); in receive_lookup_reply()
4801 ret_nodeid = ms->m_nodeid; in receive_lookup_reply()
4813 lkb->lkb_id, ms->m_header.h_nodeid, ret_nodeid, in receive_lookup_reply()
4826 lkb->lkb_id, ms->m_header.h_nodeid); in receive_lookup_reply()
4855 static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms, in _receive_message() argument
4860 if (!dlm_is_member(ls, ms->m_header.h_nodeid)) { in _receive_message()
4862 ms->m_type, ms->m_header.h_nodeid, ms->m_lkid, in _receive_message()
4863 ms->m_remid, ms->m_result); in _receive_message()
4867 switch (ms->m_type) { in _receive_message()
4872 error = receive_request(ls, ms); in _receive_message()
4876 error = receive_convert(ls, ms); in _receive_message()
4880 error = receive_unlock(ls, ms); in _receive_message()
4885 error = receive_cancel(ls, ms); in _receive_message()
4891 error = receive_request_reply(ls, ms); in _receive_message()
4895 error = receive_convert_reply(ls, ms); in _receive_message()
4899 error = receive_unlock_reply(ls, ms); in _receive_message()
4903 error = receive_cancel_reply(ls, ms); in _receive_message()
4910 error = receive_grant(ls, ms); in _receive_message()
4915 error = receive_bast(ls, ms); in _receive_message()
4921 receive_lookup(ls, ms); in _receive_message()
4925 receive_remove(ls, ms); in _receive_message()
4931 receive_lookup_reply(ls, ms); in _receive_message()
4937 receive_purge(ls, ms); in _receive_message()
4941 log_error(ls, "unknown message type %d", ms->m_type); in _receive_message()
4957 ms->m_type, ms->m_remid, ms->m_header.h_nodeid, in _receive_message()
4958 ms->m_lkid, saved_seq); in _receive_message()
4961 ms->m_type, ms->m_remid, ms->m_header.h_nodeid, in _receive_message()
4962 ms->m_lkid, saved_seq); in _receive_message()
4964 if (ms->m_type == DLM_MSG_CONVERT) in _receive_message()
4965 dlm_dump_rsb_hash(ls, ms->m_hash); in _receive_message()
4971 ms->m_type, ms->m_header.h_nodeid, in _receive_message()
4972 ms->m_lkid, ms->m_remid, saved_seq); in _receive_message()
4984 static void dlm_receive_message(struct dlm_ls *ls, struct dlm_message *ms, in dlm_receive_message() argument
4993 ms->m_type, nodeid); in dlm_receive_message()
4997 dlm_add_requestqueue(ls, nodeid, ms); in dlm_receive_message()
5000 _receive_message(ls, ms, 0); in dlm_receive_message()
5007 void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms, in dlm_receive_message_saved() argument
5010 _receive_message(ls, ms, saved_seq); in dlm_receive_message_saved()
6273 struct dlm_message *ms; in send_purge() local
6278 DLM_MSG_PURGE, &ms, &mh); in send_purge()
6281 ms->m_nodeid = nodeid; in send_purge()
6282 ms->m_pid = pid; in send_purge()
6284 return send_message(mh, ms); in send_purge()