Lines Matching +full:1 +full:ms
31 Stage 1 (lock, unlock) is mainly about checking input args and
89 struct dlm_message *ms);
90 static int receive_extralen(struct dlm_message *ms);
100 * Usage: matrix[grmode+1][rqmode+1] (although m[rq+1][gr+1] is the same)
105 {1, 1, 1, 1, 1, 1, 1, 0}, /* UN */
106 {1, 1, 1, 1, 1, 1, 1, 0}, /* NL */
107 {1, 1, 1, 1, 1, 1, 0, 0}, /* CR */
108 {1, 1, 1, 1, 0, 0, 0, 0}, /* CW */
109 {1, 1, 1, 0, 1, 0, 0, 0}, /* PR */
110 {1, 1, 1, 0, 0, 0, 0, 0}, /* PW */
111 {1, 1, 0, 0, 0, 0, 0, 0}, /* EX */
118 * Usage: matrix[grmode+1][rqmode+1]
119 * 1 = LVB is returned to the caller
121 * -1 = nothing happens to the LVB
126 { -1, 1, 1, 1, 1, 1, 1, -1 }, /* UN */
127 { -1, 1, 1, 1, 1, 1, 1, 0 }, /* NL */
128 { -1, -1, 1, 1, 1, 1, 1, 0 }, /* CR */
129 { -1, -1, -1, 1, 1, 1, 1, 0 }, /* CW */
130 { -1, -1, -1, -1, 1, 1, 1, 0 }, /* PR */
131 { -1, 0, 0, 0, 0, 0, 1, 0 }, /* PW */
132 { -1, 0, 0, 0, 0, 0, 0, 0 }, /* EX */
133 { -1, 0, 0, 0, 0, 0, 0, 0 } /* PD */
137 __dlm_compat_matrix[(gr)->lkb_grmode + 1][(rq)->lkb_rqmode + 1]
141 return __dlm_compat_matrix[mode1 + 1][mode2 + 1]; in dlm_modes_compat()
147 * Usage: matrix[grmode+1][rqmode+1]
153 {0, 0, 1, 1, 1, 1, 1, 0}, /* NL */
154 {0, 0, 0, 1, 1, 1, 1, 0}, /* CR */
155 {0, 0, 0, 0, 1, 1, 1, 0}, /* CW */
156 {0, 0, 0, 1, 0, 1, 1, 0}, /* PR */
157 {0, 0, 0, 0, 0, 0, 1, 0}, /* PW */
258 return (lkb->lkb_flags & DLM_IFL_MSTCPY) ? 1 : 0; in is_master_copy()
265 return 1; in middle_conversion()
517 * ref count of 1; when found on normal list the ref count is incremented.
565 from_dir = 1; in find_rsb_dir()
567 from_other = 1; in find_rsb_dir()
569 from_local = 1; in find_rsb_dir()
589 create = 1; in find_rsb_dir()
712 r->res_nodeid = -1; in find_rsb_dir()
833 b = hash & (ls->ls_rsbtbl_size - 1); in find_rsb()
873 request; this could happen with master 0 / res_nodeid -1 */ in validate_master_nodeid()
987 * . dlm_master_lookup RECOVER_DIR (fix_master 0, from_master 1)
996 * . dlm_master_lookup RECOVER_MASTER (fix_master 1, from_master 0)
1017 b = hash & (ls->ls_rsbtbl_size - 1); in dlm_master_lookup()
1024 *r_nodeid = -1; in dlm_master_lookup()
1128 b = hash & (ls->ls_rsbtbl_size - 1); in dlm_dump_rsb_name()
1212 lkb->lkb_nodeid = -1; in _create_lkb()
1244 return _create_lkb(ls, lkb_ret, 1, 0); in create_lkb()
1413 return -1; in msg_reply_type()
1477 struct dlm_message *ms) in _remove_from_waiters() argument
1485 overlap_done = 1; in _remove_from_waiters()
1492 overlap_done = 1; in _remove_from_waiters()
1503 return -1; in _remove_from_waiters()
1516 is_overlap_cancel(lkb) && ms && !ms->m_result) { in _remove_from_waiters()
1535 lkb->lkb_id, ms ? le32_to_cpu(ms->m_header.h_nodeid) : 0, in _remove_from_waiters()
1537 return -1; in _remove_from_waiters()
1577 static int remove_from_waiters_ms(struct dlm_lkb *lkb, struct dlm_message *ms) in remove_from_waiters_ms() argument
1582 if (ms->m_flags != cpu_to_le32(DLM_IFL_STUB_MS)) in remove_from_waiters_ms()
1584 error = _remove_from_waiters(lkb, le32_to_cpu(ms->m_type), ms); in remove_from_waiters_ms()
1585 if (ms->m_flags != cpu_to_le32(DLM_IFL_STUB_MS)) in remove_from_waiters_ms()
1655 need_shrink = 1; in shrink_bucket()
1850 do_cancel = 1; in dlm_scan_timeout()
1854 do_warn = 1; in dlm_scan_timeout()
1919 /* b=1 lvb returned to caller in set_lvb_lock()
1921 b=-1 do nothing */ in set_lvb_lock()
1923 b = dlm_lvb_operations[lkb->lkb_grmode + 1][lkb->lkb_rqmode + 1]; in set_lvb_lock()
1925 if (b == 1) { in set_lvb_lock()
1996 struct dlm_message *ms) in set_lvb_lock_pc() argument
2006 b = dlm_lvb_operations[lkb->lkb_grmode + 1][lkb->lkb_rqmode + 1]; in set_lvb_lock_pc()
2007 if (b == 1) { in set_lvb_lock_pc()
2008 int len = receive_extralen(ms); in set_lvb_lock_pc()
2011 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in set_lvb_lock_pc()
2012 lkb->lkb_lvbseq = le32_to_cpu(ms->m_lvbseq); in set_lvb_lock_pc()
2047 1 moved lock to granted
2048 -1 removed lock */
2061 rv = 1; in revert_lock()
2069 rv = -1; in revert_lock()
2103 struct dlm_message *ms) in grant_lock_pc() argument
2105 set_lvb_lock_pc(r, lkb, ms); in grant_lock_pc()
2141 static void munge_altmode(struct dlm_lkb *lkb, struct dlm_message *ms) in munge_altmode() argument
2143 if (ms->m_type != cpu_to_le32(DLM_MSG_REQUEST_REPLY) && in munge_altmode()
2144 ms->m_type != cpu_to_le32(DLM_MSG_GRANT)) { in munge_altmode()
2146 lkb->lkb_id, le32_to_cpu(ms->m_type)); in munge_altmode()
2165 return 1; in first_in_list()
2180 return 1; in queue_conflict()
2233 lkb_is_ahead = 1; in conversion_deadlock_detect()
2239 return 1; in conversion_deadlock_detect()
2243 return 1; in conversion_deadlock_detect()
2250 * Return 1 if the lock can be granted, 0 otherwise.
2255 * now is 1 if the function is being called in the context of the
2259 * recover is 1 if dlm_recover_grant() is trying to grant conversions
2284 * be 1. The full condition to grant an expedite request: (now && in _can_be_granted()
2290 return 1; in _can_be_granted()
2324 return 1; in _can_be_granted()
2350 return 1; in _can_be_granted()
2359 return 1; in _can_be_granted()
2370 return 1; in _can_be_granted()
2379 return 1; in _can_be_granted()
2394 return 1; in _can_be_granted()
2406 return 1; in _can_be_granted()
2493 grant_restart = 1; in grant_pending_convert()
2502 demote_restart = 1; in grant_pending_convert()
2529 *cw = 1; in grant_pending_convert()
2535 quit = 1; in grant_pending_convert()
2555 *cw = 1; in grant_pending_wait()
2562 /* cw of 1 means there's a lock with a rqmode of DLM_LOCK_CW that's blocked
2571 return 1; in lock_requires_bast()
2576 !__dlm_compat_matrix[gr->lkb_grmode+1][high+1]) in lock_requires_bast()
2577 return 1; in lock_requires_bast()
2622 return 1; in modes_require_bast()
2627 return 1; in modes_require_bast()
2673 1: the rsb master is not available and the lkb has been placed on
2690 return 1; in set_master()
2723 return 1; in set_master()
2887 !__quecvt_compat_matrix[lkb->lkb_grmode+1][args->mode+1]) in validate_lock_args()
2910 WARN_ON(1); in validate_lock_args()
2930 /* note: it's valid for lkb_nodeid/res_nodeid to be -1 when we get here
3061 WARN_ON(1); in validate_unlock_args()
3089 if (can_be_granted(r, lkb, 1, 0, NULL)) { in do_request()
3129 if (can_be_granted(r, lkb, 1, 0, &deadlk)) { in do_convert()
3155 if (_can_be_granted(r, lkb, 1, 0)) { in do_convert()
3419 * Two stage 1 varieties: dlm_lock() and dlm_unlock()
3557 struct dlm_message *ms; in _create_message() local
3569 ms = (struct dlm_message *) mb; in _create_message()
3571 ms->m_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR); in _create_message()
3572 ms->m_header.u.h_lockspace = cpu_to_le32(ls->ls_global_id); in _create_message()
3573 ms->m_header.h_nodeid = cpu_to_le32(dlm_our_nodeid()); in _create_message()
3574 ms->m_header.h_length = cpu_to_le16(mb_len); in _create_message()
3575 ms->m_header.h_cmd = DLM_MSG; in _create_message()
3577 ms->m_type = cpu_to_le32(mstype); in _create_message()
3580 *ms_ret = ms; in _create_message()
3614 static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms) in send_message() argument
3621 struct dlm_message *ms) in send_args() argument
3623 ms->m_nodeid = cpu_to_le32(lkb->lkb_nodeid); in send_args()
3624 ms->m_pid = cpu_to_le32(lkb->lkb_ownpid); in send_args()
3625 ms->m_lkid = cpu_to_le32(lkb->lkb_id); in send_args()
3626 ms->m_remid = cpu_to_le32(lkb->lkb_remid); in send_args()
3627 ms->m_exflags = cpu_to_le32(lkb->lkb_exflags); in send_args()
3628 ms->m_sbflags = cpu_to_le32(lkb->lkb_sbflags); in send_args()
3629 ms->m_flags = cpu_to_le32(lkb->lkb_flags); in send_args()
3630 ms->m_lvbseq = cpu_to_le32(lkb->lkb_lvbseq); in send_args()
3631 ms->m_status = cpu_to_le32(lkb->lkb_status); in send_args()
3632 ms->m_grmode = cpu_to_le32(lkb->lkb_grmode); in send_args()
3633 ms->m_rqmode = cpu_to_le32(lkb->lkb_rqmode); in send_args()
3634 ms->m_hash = cpu_to_le32(r->res_hash); in send_args()
3640 ms->m_asts |= cpu_to_le32(DLM_CB_BAST); in send_args()
3642 ms->m_asts |= cpu_to_le32(DLM_CB_CAST); in send_args()
3647 switch (ms->m_type) { in send_args()
3650 memcpy(ms->m_extra, r->res_name, r->res_length); in send_args()
3659 memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen); in send_args()
3666 struct dlm_message *ms; in send_common() local
3676 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh); in send_common()
3680 send_args(r, lkb, ms); in send_common()
3682 error = send_message(mh, ms); in send_common()
3731 struct dlm_message *ms; in send_grant() local
3737 error = create_message(r, lkb, to_nodeid, DLM_MSG_GRANT, &ms, &mh); in send_grant()
3741 send_args(r, lkb, ms); in send_grant()
3743 ms->m_result = 0; in send_grant()
3745 error = send_message(mh, ms); in send_grant()
3752 struct dlm_message *ms; in send_bast() local
3758 error = create_message(r, NULL, to_nodeid, DLM_MSG_BAST, &ms, &mh); in send_bast()
3762 send_args(r, lkb, ms); in send_bast()
3764 ms->m_bastmode = cpu_to_le32(mode); in send_bast()
3766 error = send_message(mh, ms); in send_bast()
3773 struct dlm_message *ms; in send_lookup() local
3783 error = create_message(r, NULL, to_nodeid, DLM_MSG_LOOKUP, &ms, &mh); in send_lookup()
3787 send_args(r, lkb, ms); in send_lookup()
3789 error = send_message(mh, ms); in send_lookup()
3801 struct dlm_message *ms; in send_remove() local
3807 error = create_message(r, NULL, to_nodeid, DLM_MSG_REMOVE, &ms, &mh); in send_remove()
3811 memcpy(ms->m_extra, r->res_name, r->res_length); in send_remove()
3812 ms->m_hash = cpu_to_le32(r->res_hash); in send_remove()
3814 error = send_message(mh, ms); in send_remove()
3822 struct dlm_message *ms; in send_common_reply() local
3828 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh); in send_common_reply()
3832 send_args(r, lkb, ms); in send_common_reply()
3834 ms->m_result = cpu_to_le32(to_dlm_errno(rv)); in send_common_reply()
3836 error = send_message(mh, ms); in send_common_reply()
3865 struct dlm_message *ms; in send_lookup_reply() local
3869 error = create_message(r, NULL, nodeid, DLM_MSG_LOOKUP_REPLY, &ms, &mh); in send_lookup_reply()
3873 ms->m_lkid = ms_in->m_lkid; in send_lookup_reply()
3874 ms->m_result = cpu_to_le32(to_dlm_errno(rv)); in send_lookup_reply()
3875 ms->m_nodeid = cpu_to_le32(ret_nodeid); in send_lookup_reply()
3877 error = send_message(mh, ms); in send_lookup_reply()
3886 static void receive_flags(struct dlm_lkb *lkb, struct dlm_message *ms) in receive_flags() argument
3888 lkb->lkb_exflags = le32_to_cpu(ms->m_exflags); in receive_flags()
3889 lkb->lkb_sbflags = le32_to_cpu(ms->m_sbflags); in receive_flags()
3891 (le32_to_cpu(ms->m_flags) & 0x0000FFFF); in receive_flags()
3894 static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in receive_flags_reply() argument
3896 if (ms->m_flags == cpu_to_le32(DLM_IFL_STUB_MS)) in receive_flags_reply()
3899 lkb->lkb_sbflags = le32_to_cpu(ms->m_sbflags); in receive_flags_reply()
3901 (le32_to_cpu(ms->m_flags) & 0x0000FFFF); in receive_flags_reply()
3904 static int receive_extralen(struct dlm_message *ms) in receive_extralen() argument
3906 return (le16_to_cpu(ms->m_header.h_length) - in receive_extralen()
3911 struct dlm_message *ms) in receive_lvb() argument
3920 len = receive_extralen(ms); in receive_lvb()
3923 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in receive_lvb()
3939 struct dlm_message *ms) in receive_request_args() argument
3941 lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_request_args()
3942 lkb->lkb_ownpid = le32_to_cpu(ms->m_pid); in receive_request_args()
3943 lkb->lkb_remid = le32_to_cpu(ms->m_lkid); in receive_request_args()
3945 lkb->lkb_rqmode = le32_to_cpu(ms->m_rqmode); in receive_request_args()
3947 lkb->lkb_bastfn = (ms->m_asts & cpu_to_le32(DLM_CB_BAST)) ? &fake_bastfn : NULL; in receive_request_args()
3948 lkb->lkb_astfn = (ms->m_asts & cpu_to_le32(DLM_CB_CAST)) ? &fake_astfn : NULL; in receive_request_args()
3961 struct dlm_message *ms) in receive_convert_args() argument
3966 if (receive_lvb(ls, lkb, ms)) in receive_convert_args()
3969 lkb->lkb_rqmode = le32_to_cpu(ms->m_rqmode); in receive_convert_args()
3970 lkb->lkb_lvbseq = le32_to_cpu(ms->m_lvbseq); in receive_convert_args()
3976 struct dlm_message *ms) in receive_unlock_args() argument
3978 if (receive_lvb(ls, lkb, ms)) in receive_unlock_args()
3986 static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms) in setup_stub_lkb() argument
3989 lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in setup_stub_lkb()
3990 lkb->lkb_remid = le32_to_cpu(ms->m_lkid); in setup_stub_lkb()
3996 static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms) in validate_message() argument
3998 int from = le32_to_cpu(ms->m_header.h_nodeid); in validate_message()
4002 if (ms->m_flags & cpu_to_le32(DLM_IFL_USER) && in validate_message()
4010 switch (ms->m_type) { in validate_message()
4030 else if (lkb->lkb_nodeid != -1 && lkb->lkb_nodeid != from) in validate_message()
4042 le32_to_cpu(ms->m_type), from, lkb->lkb_id, in validate_message()
4049 char name[DLM_RESNAME_MAXLEN + 1]; in send_repeat_remove()
4050 struct dlm_message *ms; in send_repeat_remove() local
4060 b = hash & (ls->ls_rsbtbl_size - 1); in send_repeat_remove()
4090 dir_nodeid, DLM_MSG_REMOVE, &ms, &mh); in send_repeat_remove()
4094 memcpy(ms->m_extra, name, len); in send_repeat_remove()
4095 ms->m_hash = cpu_to_le32(hash); in send_repeat_remove()
4097 send_message(mh, ms); in send_repeat_remove()
4107 static int receive_request(struct dlm_ls *ls, struct dlm_message *ms) in receive_request() argument
4114 from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_request()
4120 receive_flags(lkb, ms); in receive_request()
4122 error = receive_request_args(ls, lkb, ms); in receive_request()
4134 namelen = receive_extralen(ms); in receive_request()
4136 error = find_rsb(ls, ms->m_extra, namelen, from_nodeid, in receive_request()
4187 le32_to_cpu(ms->m_lkid), from_nodeid, error); in receive_request()
4191 send_repeat_remove(ls, ms->m_extra, namelen); in receive_request()
4195 setup_stub_lkb(ls, ms); in receive_request()
4200 static int receive_convert(struct dlm_ls *ls, struct dlm_message *ms) in receive_convert() argument
4204 int error, reply = 1; in receive_convert()
4206 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_convert()
4210 if (lkb->lkb_remid != le32_to_cpu(ms->m_lkid)) { in receive_convert()
4214 le32_to_cpu(ms->m_header.h_nodeid), in receive_convert()
4215 le32_to_cpu(ms->m_lkid)); in receive_convert()
4226 error = validate_message(lkb, ms); in receive_convert()
4230 receive_flags(lkb, ms); in receive_convert()
4232 error = receive_convert_args(ls, lkb, ms); in receive_convert()
4251 setup_stub_lkb(ls, ms); in receive_convert()
4256 static int receive_unlock(struct dlm_ls *ls, struct dlm_message *ms) in receive_unlock() argument
4262 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_unlock()
4266 if (lkb->lkb_remid != le32_to_cpu(ms->m_lkid)) { in receive_unlock()
4269 le32_to_cpu(ms->m_header.h_nodeid), in receive_unlock()
4270 le32_to_cpu(ms->m_lkid)); in receive_unlock()
4281 error = validate_message(lkb, ms); in receive_unlock()
4285 receive_flags(lkb, ms); in receive_unlock()
4287 error = receive_unlock_args(ls, lkb, ms); in receive_unlock()
4303 setup_stub_lkb(ls, ms); in receive_unlock()
4308 static int receive_cancel(struct dlm_ls *ls, struct dlm_message *ms) in receive_cancel() argument
4314 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_cancel()
4318 receive_flags(lkb, ms); in receive_cancel()
4325 error = validate_message(lkb, ms); in receive_cancel()
4339 setup_stub_lkb(ls, ms); in receive_cancel()
4344 static int receive_grant(struct dlm_ls *ls, struct dlm_message *ms) in receive_grant() argument
4350 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_grant()
4359 error = validate_message(lkb, ms); in receive_grant()
4363 receive_flags_reply(lkb, ms); in receive_grant()
4365 munge_altmode(lkb, ms); in receive_grant()
4366 grant_lock_pc(r, lkb, ms); in receive_grant()
4375 static int receive_bast(struct dlm_ls *ls, struct dlm_message *ms) in receive_bast() argument
4381 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_bast()
4390 error = validate_message(lkb, ms); in receive_bast()
4394 queue_bast(r, lkb, le32_to_cpu(ms->m_bastmode)); in receive_bast()
4395 lkb->lkb_highbast = le32_to_cpu(ms->m_bastmode); in receive_bast()
4403 static void receive_lookup(struct dlm_ls *ls, struct dlm_message *ms) in receive_lookup() argument
4407 from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_lookup()
4410 len = receive_extralen(ms); in receive_lookup()
4412 error = dlm_master_lookup(ls, from_nodeid, ms->m_extra, len, 0, in receive_lookup()
4417 receive_request(ls, ms); in receive_lookup()
4420 send_lookup_reply(ls, ms, ret_nodeid, error); in receive_lookup()
4423 static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms) in receive_remove() argument
4425 char name[DLM_RESNAME_MAXLEN+1]; in receive_remove()
4430 from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_remove()
4432 len = receive_extralen(ms); in receive_remove()
4440 dir_nodeid = dlm_hash2nodeid(ls, le32_to_cpu(ms->m_hash)); in receive_remove()
4457 memcpy(name, ms->m_extra, len); in receive_remove()
4460 b = hash & (ls->ls_rsbtbl_size - 1); in receive_remove()
4511 static void receive_purge(struct dlm_ls *ls, struct dlm_message *ms) in receive_purge() argument
4513 do_purge(ls, le32_to_cpu(ms->m_nodeid), le32_to_cpu(ms->m_pid)); in receive_purge()
4516 static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_request_reply() argument
4521 int from_nodeid = le32_to_cpu(ms->m_header.h_nodeid); in receive_request_reply()
4523 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_request_reply()
4531 error = validate_message(lkb, ms); in receive_request_reply()
4539 lkb->lkb_id, from_nodeid, le32_to_cpu(ms->m_lkid), in receive_request_reply()
4540 from_dlm_errno(le32_to_cpu(ms->m_result))); in receive_request_reply()
4554 result = from_dlm_errno(le32_to_cpu(ms->m_result)); in receive_request_reply()
4567 receive_flags_reply(lkb, ms); in receive_request_reply()
4568 lkb->lkb_remid = le32_to_cpu(ms->m_lkid); in receive_request_reply()
4570 munge_altmode(lkb, ms); in receive_request_reply()
4575 grant_lock_pc(r, lkb, ms); in receive_request_reply()
4593 r->res_nodeid = -1; in receive_request_reply()
4594 lkb->lkb_nodeid = -1; in receive_request_reply()
4638 struct dlm_message *ms) in __receive_convert_reply() argument
4641 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { in __receive_convert_reply()
4648 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4655 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4665 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4668 grant_lock_pc(r, lkb, ms); in __receive_convert_reply()
4674 lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid), in __receive_convert_reply()
4675 le32_to_cpu(ms->m_lkid), in __receive_convert_reply()
4676 from_dlm_errno(le32_to_cpu(ms->m_result))); in __receive_convert_reply()
4682 static void _receive_convert_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_convert_reply() argument
4690 error = validate_message(lkb, ms); in _receive_convert_reply()
4695 error = remove_from_waiters_ms(lkb, ms); in _receive_convert_reply()
4699 __receive_convert_reply(r, lkb, ms); in _receive_convert_reply()
4705 static int receive_convert_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_convert_reply() argument
4710 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_convert_reply()
4714 _receive_convert_reply(lkb, ms); in receive_convert_reply()
4719 static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_unlock_reply() argument
4727 error = validate_message(lkb, ms); in _receive_unlock_reply()
4732 error = remove_from_waiters_ms(lkb, ms); in _receive_unlock_reply()
4738 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { in _receive_unlock_reply()
4740 receive_flags_reply(lkb, ms); in _receive_unlock_reply()
4748 lkb->lkb_id, from_dlm_errno(le32_to_cpu(ms->m_result))); in _receive_unlock_reply()
4755 static int receive_unlock_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_unlock_reply() argument
4760 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_unlock_reply()
4764 _receive_unlock_reply(lkb, ms); in receive_unlock_reply()
4769 static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_cancel_reply() argument
4777 error = validate_message(lkb, ms); in _receive_cancel_reply()
4782 error = remove_from_waiters_ms(lkb, ms); in _receive_cancel_reply()
4788 switch (from_dlm_errno(le32_to_cpu(ms->m_result))) { in _receive_cancel_reply()
4790 receive_flags_reply(lkb, ms); in _receive_cancel_reply()
4799 from_dlm_errno(le32_to_cpu(ms->m_result))); in _receive_cancel_reply()
4806 static int receive_cancel_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_cancel_reply() argument
4811 error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb); in receive_cancel_reply()
4815 _receive_cancel_reply(lkb, ms); in receive_cancel_reply()
4820 static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_lookup_reply() argument
4827 error = find_lkb(ls, le32_to_cpu(ms->m_lkid), &lkb); in receive_lookup_reply()
4830 le32_to_cpu(ms->m_lkid)); in receive_lookup_reply()
4834 /* ms->m_result is the value returned by dlm_master_lookup on dir node in receive_lookup_reply()
4845 ret_nodeid = le32_to_cpu(ms->m_nodeid); in receive_lookup_reply()
4857 lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid), in receive_lookup_reply()
4865 do_lookup_list = 1; in receive_lookup_reply()
4867 } else if (ret_nodeid == -1) { in receive_lookup_reply()
4870 lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid)); in receive_lookup_reply()
4872 r->res_nodeid = -1; in receive_lookup_reply()
4873 lkb->lkb_nodeid = -1; in receive_lookup_reply()
4899 static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms, in _receive_message() argument
4904 if (!dlm_is_member(ls, le32_to_cpu(ms->m_header.h_nodeid))) { in _receive_message()
4906 le32_to_cpu(ms->m_type), in _receive_message()
4907 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
4908 le32_to_cpu(ms->m_lkid), le32_to_cpu(ms->m_remid), in _receive_message()
4909 from_dlm_errno(le32_to_cpu(ms->m_result))); in _receive_message()
4913 switch (ms->m_type) { in _receive_message()
4918 error = receive_request(ls, ms); in _receive_message()
4922 error = receive_convert(ls, ms); in _receive_message()
4926 error = receive_unlock(ls, ms); in _receive_message()
4930 noent = 1; in _receive_message()
4931 error = receive_cancel(ls, ms); in _receive_message()
4937 error = receive_request_reply(ls, ms); in _receive_message()
4941 error = receive_convert_reply(ls, ms); in _receive_message()
4945 error = receive_unlock_reply(ls, ms); in _receive_message()
4949 error = receive_cancel_reply(ls, ms); in _receive_message()
4955 noent = 1; in _receive_message()
4956 error = receive_grant(ls, ms); in _receive_message()
4960 noent = 1; in _receive_message()
4961 error = receive_bast(ls, ms); in _receive_message()
4967 receive_lookup(ls, ms); in _receive_message()
4971 receive_remove(ls, ms); in _receive_message()
4977 receive_lookup_reply(ls, ms); in _receive_message()
4983 receive_purge(ls, ms); in _receive_message()
4988 le32_to_cpu(ms->m_type)); in _receive_message()
5004 le32_to_cpu(ms->m_type), le32_to_cpu(ms->m_remid), in _receive_message()
5005 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
5006 le32_to_cpu(ms->m_lkid), saved_seq); in _receive_message()
5009 le32_to_cpu(ms->m_type), le32_to_cpu(ms->m_remid), in _receive_message()
5010 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
5011 le32_to_cpu(ms->m_lkid), saved_seq); in _receive_message()
5013 if (ms->m_type == cpu_to_le32(DLM_MSG_CONVERT)) in _receive_message()
5014 dlm_dump_rsb_hash(ls, le32_to_cpu(ms->m_hash)); in _receive_message()
5020 le32_to_cpu(ms->m_type), in _receive_message()
5021 le32_to_cpu(ms->m_header.h_nodeid), in _receive_message()
5022 le32_to_cpu(ms->m_lkid), le32_to_cpu(ms->m_remid), in _receive_message()
5035 static void dlm_receive_message(struct dlm_ls *ls, struct dlm_message *ms, in dlm_receive_message() argument
5044 le32_to_cpu(ms->m_type), nodeid); in dlm_receive_message()
5048 dlm_add_requestqueue(ls, nodeid, ms); in dlm_receive_message()
5051 _receive_message(ls, ms, 0); in dlm_receive_message()
5058 void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms, in dlm_receive_message_saved() argument
5061 _receive_message(ls, ms, saved_seq); in dlm_receive_message_saved()
5156 return 1; in waiter_needs_recovery()
5159 return 1; in waiter_needs_recovery()
5320 while (1) { in dlm_recover_waiters_post()
5383 err = 1; in dlm_recover_waiters_post()
5397 err = 1; in dlm_recover_waiters_post()
5572 while (1) { in dlm_recover_grant()
5575 if (bucket == ls->ls_rsbtbl_size - 1) in dlm_recover_grant()
5996 found_other_mode = 1; in dlm_user_adopt_orphan()
6255 1) references lkb->ua which we free here and 2) adds lkbs to proc->asts,
6270 while (1) { in dlm_clear_proc_locks()
6311 while (1) { in purge_proc_locks()
6366 struct dlm_message *ms; in send_purge() local
6371 DLM_MSG_PURGE, &ms, &mh); in send_purge()
6374 ms->m_nodeid = cpu_to_le32(nodeid); in send_purge()
6375 ms->m_pid = cpu_to_le32(pid); in send_purge()
6377 return send_message(mh, ms); in send_purge()
6415 error = _create_lkb(ls, &lkb, lkb_id, lkb_id + 1); in dlm_debug_add_lkb()