Lines Matching refs:ms

89 				    const struct dlm_message *ms, bool local);
90 static int receive_extralen(const struct dlm_message *ms);
1462 const struct dlm_message *ms) in _remove_from_waiters() argument
1500 (lkb->lkb_wait_type == DLM_MSG_CONVERT) && ms && !ms->m_result && in _remove_from_waiters()
1519 lkb->lkb_id, ms ? le32_to_cpu(ms->m_header.h_nodeid) : 0, in _remove_from_waiters()
1561 const struct dlm_message *ms, bool local) in remove_from_waiters_ms() argument
1568 error = _remove_from_waiters(lkb, le32_to_cpu(ms->m_type), ms); in remove_from_waiters_ms()
1803 const struct dlm_message *ms) in set_lvb_lock_pc() argument
1815 int len = receive_extralen(ms); in set_lvb_lock_pc()
1818 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in set_lvb_lock_pc()
1819 lkb->lkb_lvbseq = le32_to_cpu(ms->m_lvbseq); in set_lvb_lock_pc()
1910 const struct dlm_message *ms) in grant_lock_pc() argument
1912 set_lvb_lock_pc(r, lkb, ms); in grant_lock_pc()
1948 static void munge_altmode(struct dlm_lkb *lkb, const struct dlm_message *ms) in munge_altmode() argument
1950 if (ms->m_type != cpu_to_le32(DLM_MSG_REQUEST_REPLY) && in munge_altmode()
1951 ms->m_type != cpu_to_le32(DLM_MSG_GRANT)) { in munge_altmode()
1953 lkb->lkb_id, le32_to_cpu(ms->m_type)); in munge_altmode()
3335 struct dlm_message *ms; in _create_message() local
3347 ms = (struct dlm_message *) mb; in _create_message()
3349 ms->m_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR); in _create_message()
3350 ms->m_header.u.h_lockspace = cpu_to_le32(ls->ls_global_id); in _create_message()
3351 ms->m_header.h_nodeid = cpu_to_le32(dlm_our_nodeid()); in _create_message()
3352 ms->m_header.h_length = cpu_to_le16(mb_len); in _create_message()
3353 ms->m_header.h_cmd = DLM_MSG; in _create_message()
3355 ms->m_type = cpu_to_le32(mstype); in _create_message()
3358 *ms_ret = ms; in _create_message()
3393 static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms, in send_message() argument
3401 struct dlm_message *ms) in send_args() argument
3403 ms->m_nodeid = cpu_to_le32(lkb->lkb_nodeid); in send_args()
3404 ms->m_pid = cpu_to_le32(lkb->lkb_ownpid); in send_args()
3405 ms->m_lkid = cpu_to_le32(lkb->lkb_id); in send_args()
3406 ms->m_remid = cpu_to_le32(lkb->lkb_remid); in send_args()
3407 ms->m_exflags = cpu_to_le32(lkb->lkb_exflags); in send_args()
3408 ms->m_sbflags = cpu_to_le32(dlm_sbflags_val(lkb)); in send_args()
3409 ms->m_flags = cpu_to_le32(dlm_dflags_val(lkb)); in send_args()
3410 ms->m_lvbseq = cpu_to_le32(lkb->lkb_lvbseq); in send_args()
3411 ms->m_status = cpu_to_le32(lkb->lkb_status); in send_args()
3412 ms->m_grmode = cpu_to_le32(lkb->lkb_grmode); in send_args()
3413 ms->m_rqmode = cpu_to_le32(lkb->lkb_rqmode); in send_args()
3414 ms->m_hash = cpu_to_le32(r->res_hash); in send_args()
3420 ms->m_asts |= cpu_to_le32(DLM_CB_BAST); in send_args()
3422 ms->m_asts |= cpu_to_le32(DLM_CB_CAST); in send_args()
3427 switch (ms->m_type) { in send_args()
3430 memcpy(ms->m_extra, r->res_name, r->res_length); in send_args()
3439 memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen); in send_args()
3446 struct dlm_message *ms; in send_common() local
3456 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh, GFP_NOFS); in send_common()
3460 send_args(r, lkb, ms); in send_common()
3462 error = send_message(mh, ms, r->res_name, r->res_length); in send_common()
3510 struct dlm_message *ms; in send_grant() local
3516 error = create_message(r, lkb, to_nodeid, DLM_MSG_GRANT, &ms, &mh, in send_grant()
3521 send_args(r, lkb, ms); in send_grant()
3523 ms->m_result = 0; in send_grant()
3525 error = send_message(mh, ms, r->res_name, r->res_length); in send_grant()
3532 struct dlm_message *ms; in send_bast() local
3538 error = create_message(r, NULL, to_nodeid, DLM_MSG_BAST, &ms, &mh, in send_bast()
3543 send_args(r, lkb, ms); in send_bast()
3545 ms->m_bastmode = cpu_to_le32(mode); in send_bast()
3547 error = send_message(mh, ms, r->res_name, r->res_length); in send_bast()
3554 struct dlm_message *ms; in send_lookup() local
3564 error = create_message(r, NULL, to_nodeid, DLM_MSG_LOOKUP, &ms, &mh, in send_lookup()
3569 send_args(r, lkb, ms); in send_lookup()
3571 error = send_message(mh, ms, r->res_name, r->res_length); in send_lookup()
3583 struct dlm_message *ms; in send_remove() local
3589 error = create_message(r, NULL, to_nodeid, DLM_MSG_REMOVE, &ms, &mh, in send_remove()
3594 memcpy(ms->m_extra, r->res_name, r->res_length); in send_remove()
3595 ms->m_hash = cpu_to_le32(r->res_hash); in send_remove()
3597 error = send_message(mh, ms, r->res_name, r->res_length); in send_remove()
3605 struct dlm_message *ms; in send_common_reply() local
3611 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh, GFP_NOFS); in send_common_reply()
3615 send_args(r, lkb, ms); in send_common_reply()
3617 ms->m_result = cpu_to_le32(to_dlm_errno(rv)); in send_common_reply()
3619 error = send_message(mh, ms, r->res_name, r->res_length); in send_common_reply()
3649 struct dlm_message *ms; in send_lookup_reply() local
3653 error = create_message(r, NULL, nodeid, DLM_MSG_LOOKUP_REPLY, &ms, &mh, in send_lookup_reply()
3658 ms->m_lkid = ms_in->m_lkid; in send_lookup_reply()
3659 ms->m_result = cpu_to_le32(to_dlm_errno(rv)); in send_lookup_reply()
3660 ms->m_nodeid = cpu_to_le32(ret_nodeid); in send_lookup_reply()
3662 error = send_message(mh, ms, ms_in->m_extra, receive_extralen(ms_in)); in send_lookup_reply()
3671 static void receive_flags(struct dlm_lkb *lkb, const struct dlm_message *ms) in receive_flags() argument
3673 lkb->lkb_exflags = le32_to_cpu(ms->m_exflags); in receive_flags()
3674 dlm_set_sbflags_val(lkb, le32_to_cpu(ms->m_sbflags)); in receive_flags()
3675 dlm_set_dflags_val(lkb, le32_to_cpu(ms->m_flags)); in receive_flags()
3679 const struct dlm_message *ms, in receive_flags_reply() argument
3685 dlm_set_sbflags_val(lkb, le32_to_cpu(ms->m_sbflags)); in receive_flags_reply()
3686 dlm_set_dflags_val(lkb, le32_to_cpu(ms->m_flags)); in receive_flags_reply()
3689 static int receive_extralen(const struct dlm_message *ms) in receive_extralen() argument
3691 return (le16_to_cpu(ms->m_header.h_length) - in receive_extralen()
3696 const struct dlm_message *ms) in receive_lvb() argument
3705 len = receive_extralen(ms); in receive_lvb()
3708 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in receive_lvb()
3724 const struct dlm_message *ms) in receive_request_args() argument
3726 lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_request_args()
3727 lkb->lkb_ownpid = le32_to_cpu(ms->m_pid); in receive_request_args()
3728 lkb->lkb_remid = le32_to_cpu(ms->m_lkid); in receive_request_args()
3730 lkb->lkb_rqmode = le32_to_cpu(ms->m_rqmode); in receive_request_args()
3732 lkb->lkb_bastfn = (ms->m_asts & cpu_to_le32(DLM_CB_BAST)) ? &fake_bastfn : NULL; in receive_request_args()
3733 lkb->lkb_astfn = (ms->m_asts & cpu_to_le32(DLM_CB_CAST)) ? &fake_astfn : NULL; in receive_request_args()
3746 const struct dlm_message *ms) in receive_convert_args() argument
3751 if (receive_lvb(ls, lkb, ms)) in receive_convert_args()
3754 lkb->lkb_rqmode = le32_to_cpu(ms->m_rqmode); in receive_convert_args()
3755 lkb->lkb_lvbseq = le32_to_cpu(ms->m_lvbseq); in receive_convert_args()
3761 const struct dlm_message *ms) in receive_unlock_args() argument
3763 if (receive_lvb(ls, lkb, ms)) in receive_unlock_args()
3771 static void setup_local_lkb(struct dlm_ls *ls, const struct dlm_message *ms) in setup_local_lkb() argument
3774 lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in setup_local_lkb()
3775 lkb->lkb_remid = le32_to_cpu(ms->m_lkid); in setup_local_lkb()
3781 static int validate_message(struct dlm_lkb *lkb, const struct dlm_message *ms) in validate_message() argument
3783 int from = le32_to_cpu(ms->m_header.h_nodeid); in validate_message()
3787 if (ms->m_flags & cpu_to_le32(BIT(DLM_DFL_USER_BIT)) && in validate_message()
3795 switch (ms->m_type) { in validate_message()
3827 le32_to_cpu(ms->m_type), from, lkb->lkb_id, in validate_message()
3833 static int receive_request(struct dlm_ls *ls, const struct dlm_message *ms) in receive_request() argument
3840 from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_request()
3846 receive_flags(lkb, ms); in receive_request()
3848 error = receive_request_args(ls, lkb, ms); in receive_request()
3860 namelen = receive_extralen(ms); in receive_request()
3862 error = find_rsb(ls, ms->m_extra, namelen, from_nodeid, in receive_request()
3904 le32_to_cpu(ms->m_lkid), from_nodeid, error); in receive_request()
3907 setup_local_lkb(ls, ms); in receive_request()
3912 static int receive_convert(struct dlm_ls *ls, const struct dlm_message *ms) in receive_convert() argument
3918 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_convert()
3922 if (lkb->lkb_remid != le32_to_cpu(ms->m_lkid)) { in receive_convert()
3926 le32_to_cpu(ms->m_header.h_nodeid), in receive_convert()
3927 le32_to_cpu(ms->m_lkid)); in receive_convert()
3938 error = validate_message(lkb, ms); in receive_convert()
3942 receive_flags(lkb, ms); in receive_convert()
3944 error = receive_convert_args(ls, lkb, ms); in receive_convert()
3963 setup_local_lkb(ls, ms); in receive_convert()
3968 static int receive_unlock(struct dlm_ls *ls, const struct dlm_message *ms) in receive_unlock() argument
3974 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_unlock()
3978 if (lkb->lkb_remid != le32_to_cpu(ms->m_lkid)) { in receive_unlock()
3981 le32_to_cpu(ms->m_header.h_nodeid), in receive_unlock()
3982 le32_to_cpu(ms->m_lkid)); in receive_unlock()
3993 error = validate_message(lkb, ms); in receive_unlock()
3997 receive_flags(lkb, ms); in receive_unlock()
3999 error = receive_unlock_args(ls, lkb, ms); in receive_unlock()
4015 setup_local_lkb(ls, ms); in receive_unlock()
4020 static int receive_cancel(struct dlm_ls *ls, const struct dlm_message *ms) in receive_cancel() argument
4026 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_cancel()
4030 receive_flags(lkb, ms); in receive_cancel()
4037 error = validate_message(lkb, ms); in receive_cancel()
4051 setup_local_lkb(ls, ms); in receive_cancel()
4056 static int receive_grant(struct dlm_ls *ls, const struct dlm_message *ms) in receive_grant() argument
4062 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_grant()
4071 error = validate_message(lkb, ms); in receive_grant()
4075 receive_flags_reply(lkb, ms, false); in receive_grant()
4077 munge_altmode(lkb, ms); in receive_grant()
4078 grant_lock_pc(r, lkb, ms); in receive_grant()
4087 static int receive_bast(struct dlm_ls *ls, const struct dlm_message *ms) in receive_bast() argument
4093 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_bast()
4102 error = validate_message(lkb, ms); in receive_bast()
4106 queue_bast(r, lkb, le32_to_cpu(ms->m_bastmode)); in receive_bast()
4107 lkb->lkb_highbast = le32_to_cpu(ms->m_bastmode); in receive_bast()
4115 static void receive_lookup(struct dlm_ls *ls, const struct dlm_message *ms) in receive_lookup() argument
4119 from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_lookup()
4122 len = receive_extralen(ms); in receive_lookup()
4124 error = dlm_master_lookup(ls, from_nodeid, ms->m_extra, len, 0, in receive_lookup()
4129 receive_request(ls, ms); in receive_lookup()
4132 send_lookup_reply(ls, ms, ret_nodeid, error); in receive_lookup()
4135 static void receive_remove(struct dlm_ls *ls, const struct dlm_message *ms) in receive_remove() argument
4142 from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_remove()
4144 len = receive_extralen(ms); in receive_remove()
4152 dir_nodeid = dlm_hash2nodeid(ls, le32_to_cpu(ms->m_hash)); in receive_remove()
4169 memcpy(name, ms->m_extra, len); in receive_remove()
4223 static void receive_purge(struct dlm_ls *ls, const struct dlm_message *ms) in receive_purge() argument
4225 do_purge(ls, le32_to_cpu(ms->m_nodeid), le32_to_cpu(ms->m_pid)); in receive_purge()
4229 const struct dlm_message *ms) in receive_request_reply() argument
4234 int from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_request_reply()
4236 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_request_reply()
4244 error = validate_message(lkb, ms); in receive_request_reply()
4252 lkb->lkb_id, from_nodeid, le32_to_cpu(ms->m_lkid), in receive_request_reply()
4253 from_dlm_errno(le32_to_cpu(ms->m_result))); in receive_request_reply()
4267 result = from_dlm_errno(le32_to_cpu(ms->m_result)); in receive_request_reply()
4280 receive_flags_reply(lkb, ms, false); in receive_request_reply()
4281 lkb->lkb_remid = le32_to_cpu(ms->m_lkid); in receive_request_reply()
4283 munge_altmode(lkb, ms); in receive_request_reply()
4287 grant_lock_pc(r, lkb, ms); in receive_request_reply()
4351 const struct dlm_message *ms, bool local) in __receive_convert_reply() argument
4354 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { in __receive_convert_reply()
4361 receive_flags_reply(lkb, ms, local); in __receive_convert_reply()
4368 receive_flags_reply(lkb, ms, local); in __receive_convert_reply()
4377 receive_flags_reply(lkb, ms, local); in __receive_convert_reply()
4380 grant_lock_pc(r, lkb, ms); in __receive_convert_reply()
4386 lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid), in __receive_convert_reply()
4387 le32_to_cpu(ms->m_lkid), in __receive_convert_reply()
4388 from_dlm_errno(le32_to_cpu(ms->m_result))); in __receive_convert_reply()
4395 const struct dlm_message *ms, bool local) in _receive_convert_reply() argument
4403 error = validate_message(lkb, ms); in _receive_convert_reply()
4408 error = remove_from_waiters_ms(lkb, ms, local); in _receive_convert_reply()
4412 __receive_convert_reply(r, lkb, ms, local); in _receive_convert_reply()
4419 const struct dlm_message *ms) in receive_convert_reply() argument
4424 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_convert_reply()
4428 _receive_convert_reply(lkb, ms, false); in receive_convert_reply()
4434 const struct dlm_message *ms, bool local) in _receive_unlock_reply() argument
4442 error = validate_message(lkb, ms); in _receive_unlock_reply()
4447 error = remove_from_waiters_ms(lkb, ms, local); in _receive_unlock_reply()
4453 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { in _receive_unlock_reply()
4455 receive_flags_reply(lkb, ms, local); in _receive_unlock_reply()
4463 lkb->lkb_id, from_dlm_errno(le32_to_cpu(ms->m_result))); in _receive_unlock_reply()
4471 const struct dlm_message *ms) in receive_unlock_reply() argument
4476 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_unlock_reply()
4480 _receive_unlock_reply(lkb, ms, false); in receive_unlock_reply()
4486 const struct dlm_message *ms, bool local) in _receive_cancel_reply() argument
4494 error = validate_message(lkb, ms); in _receive_cancel_reply()
4499 error = remove_from_waiters_ms(lkb, ms, local); in _receive_cancel_reply()
4505 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { in _receive_cancel_reply()
4507 receive_flags_reply(lkb, ms, local); in _receive_cancel_reply()
4516 from_dlm_errno(le32_to_cpu(ms->m_result))); in _receive_cancel_reply()
4524 const struct dlm_message *ms) in receive_cancel_reply() argument
4529 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_cancel_reply()
4533 _receive_cancel_reply(lkb, ms, false); in receive_cancel_reply()
4539 const struct dlm_message *ms) in receive_lookup_reply() argument
4546 error = find_lkb(ls, le32_to_cpu(ms->m_lkid), &lkb); in receive_lookup_reply()
4549 le32_to_cpu(ms->m_lkid)); in receive_lookup_reply()
4564 ret_nodeid = le32_to_cpu(ms->m_nodeid); in receive_lookup_reply()
4576 lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid), in receive_lookup_reply()
4589 lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid)); in receive_lookup_reply()
4618 static void _receive_message(struct dlm_ls *ls, const struct dlm_message *ms, in _receive_message() argument
4623 if (WARN_ON_ONCE(!dlm_is_member(ls, le32_to_cpu(ms->m_header.h_nodeid)))) { in _receive_message()
4625 le32_to_cpu(ms->m_type), in _receive_message()
4626 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
4627 le32_to_cpu(ms->m_lkid), le32_to_cpu(ms->m_remid), in _receive_message()
4628 from_dlm_errno(le32_to_cpu(ms->m_result))); in _receive_message()
4632 switch (ms->m_type) { in _receive_message()
4637 error = receive_request(ls, ms); in _receive_message()
4641 error = receive_convert(ls, ms); in _receive_message()
4645 error = receive_unlock(ls, ms); in _receive_message()
4650 error = receive_cancel(ls, ms); in _receive_message()
4656 error = receive_request_reply(ls, ms); in _receive_message()
4660 error = receive_convert_reply(ls, ms); in _receive_message()
4664 error = receive_unlock_reply(ls, ms); in _receive_message()
4668 error = receive_cancel_reply(ls, ms); in _receive_message()
4675 error = receive_grant(ls, ms); in _receive_message()
4680 error = receive_bast(ls, ms); in _receive_message()
4686 receive_lookup(ls, ms); in _receive_message()
4690 receive_remove(ls, ms); in _receive_message()
4696 receive_lookup_reply(ls, ms); in _receive_message()
4702 receive_purge(ls, ms); in _receive_message()
4707 le32_to_cpu(ms->m_type)); in _receive_message()
4723 le32_to_cpu(ms->m_type), le32_to_cpu(ms->m_remid), in _receive_message()
4724 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
4725 le32_to_cpu(ms->m_lkid), saved_seq); in _receive_message()
4728 le32_to_cpu(ms->m_type), le32_to_cpu(ms->m_remid), in _receive_message()
4729 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
4730 le32_to_cpu(ms->m_lkid), saved_seq); in _receive_message()
4732 if (ms->m_type == cpu_to_le32(DLM_MSG_CONVERT)) in _receive_message()
4733 dlm_dump_rsb_hash(ls, le32_to_cpu(ms->m_hash)); in _receive_message()
4739 le32_to_cpu(ms->m_type), in _receive_message()
4740 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
4741 le32_to_cpu(ms->m_lkid), le32_to_cpu(ms->m_remid), in _receive_message()
4754 static void dlm_receive_message(struct dlm_ls *ls, const struct dlm_message *ms, in dlm_receive_message() argument
4763 le32_to_cpu(ms->m_type), nodeid); in dlm_receive_message()
4767 dlm_add_requestqueue(ls, nodeid, ms); in dlm_receive_message()
4770 _receive_message(ls, ms, 0); in dlm_receive_message()
4777 void dlm_receive_message_saved(struct dlm_ls *ls, const struct dlm_message *ms, in dlm_receive_message_saved() argument
4780 _receive_message(ls, ms, saved_seq); in dlm_receive_message_saved()
6061 struct dlm_message *ms; in send_purge() local
6066 DLM_MSG_PURGE, &ms, &mh, GFP_NOFS); in send_purge()
6069 ms->m_nodeid = cpu_to_le32(nodeid); in send_purge()
6070 ms->m_pid = cpu_to_le32(pid); in send_purge()
6072 return send_message(mh, ms, NULL, 0); in send_purge()