Lines Matching +full:1 +full:ms

31    Stage 1 (lock, unlock) is mainly about checking input args and
87 struct dlm_message *ms);
88 static int receive_extralen(struct dlm_message *ms);
98 * Usage: matrix[grmode+1][rqmode+1] (although m[rq+1][gr+1] is the same)
103 {1, 1, 1, 1, 1, 1, 1, 0}, /* UN */
104 {1, 1, 1, 1, 1, 1, 1, 0}, /* NL */
105 {1, 1, 1, 1, 1, 1, 0, 0}, /* CR */
106 {1, 1, 1, 1, 0, 0, 0, 0}, /* CW */
107 {1, 1, 1, 0, 1, 0, 0, 0}, /* PR */
108 {1, 1, 1, 0, 0, 0, 0, 0}, /* PW */
109 {1, 1, 0, 0, 0, 0, 0, 0}, /* EX */
116 * Usage: matrix[grmode+1][rqmode+1]
117 * 1 = LVB is returned to the caller
119 * -1 = nothing happens to the LVB
124 { -1, 1, 1, 1, 1, 1, 1, -1 }, /* UN */
125 { -1, 1, 1, 1, 1, 1, 1, 0 }, /* NL */
126 { -1, -1, 1, 1, 1, 1, 1, 0 }, /* CR */
127 { -1, -1, -1, 1, 1, 1, 1, 0 }, /* CW */
128 { -1, -1, -1, -1, 1, 1, 1, 0 }, /* PR */
129 { -1, 0, 0, 0, 0, 0, 1, 0 }, /* PW */
130 { -1, 0, 0, 0, 0, 0, 0, 0 }, /* EX */
131 { -1, 0, 0, 0, 0, 0, 0, 0 } /* PD */
135 __dlm_compat_matrix[(gr)->lkb_grmode + 1][(rq)->lkb_rqmode + 1]
139 return __dlm_compat_matrix[mode1 + 1][mode2 + 1]; in dlm_modes_compat()
145 * Usage: matrix[grmode+1][rqmode+1]
151 {0, 0, 1, 1, 1, 1, 1, 0}, /* NL */
152 {0, 0, 0, 1, 1, 1, 1, 0}, /* CR */
153 {0, 0, 0, 0, 1, 1, 1, 0}, /* CW */
154 {0, 0, 0, 1, 0, 1, 1, 0}, /* PR */
155 {0, 0, 0, 0, 0, 0, 1, 0}, /* PW */
256 return (lkb->lkb_flags & DLM_IFL_MSTCPY) ? 1 : 0; in is_master_copy()
263 return 1; in middle_conversion()
510 * ref count of 1; when found on normal list the ref count is incremented.
558 from_dir = 1; in find_rsb_dir()
560 from_other = 1; in find_rsb_dir()
562 from_local = 1; in find_rsb_dir()
582 create = 1; in find_rsb_dir()
706 r->res_nodeid = -1; in find_rsb_dir()
826 b = hash & (ls->ls_rsbtbl_size - 1); in find_rsb()
866 request; this could happen with master 0 / res_nodeid -1 */ in validate_master_nodeid()
898 * . dlm_master_lookup RECOVER_DIR (fix_master 0, from_master 1)
907 * . dlm_master_lookup RECOVER_MASTER (fix_master 1, from_master 0)
930 b = hash & (ls->ls_rsbtbl_size - 1); in dlm_master_lookup()
937 *r_nodeid = -1; in dlm_master_lookup()
965 toss_list = 1; in dlm_master_lookup()
1107 b = hash & (ls->ls_rsbtbl_size - 1); in dlm_dump_rsb_name()
1190 lkb->lkb_nodeid = -1; in create_lkb()
1202 rv = idr_alloc(&ls->ls_lkbidr, lkb, 1, 0, GFP_NOWAIT); in create_lkb()
1260 return 1; in __put_lkb()
1375 return -1; in msg_reply_type()
1388 return 1; in nodeid_warned()
1509 struct dlm_message *ms) in _remove_from_waiters() argument
1517 overlap_done = 1; in _remove_from_waiters()
1524 overlap_done = 1; in _remove_from_waiters()
1535 return -1; in _remove_from_waiters()
1548 is_overlap_cancel(lkb) && ms && !ms->m_result) { in _remove_from_waiters()
1567 lkb->lkb_id, ms ? ms->m_header.h_nodeid : 0, lkb->lkb_remid, in _remove_from_waiters()
1569 return -1; in _remove_from_waiters()
1609 static int remove_from_waiters_ms(struct dlm_lkb *lkb, struct dlm_message *ms) in remove_from_waiters_ms() argument
1614 if (ms->m_flags != DLM_IFL_STUB_MS) in remove_from_waiters_ms()
1616 error = _remove_from_waiters(lkb, ms->m_type, ms); in remove_from_waiters_ms()
1617 if (ms->m_flags != DLM_IFL_STUB_MS) in remove_from_waiters_ms()
1637 msleep(1); in wait_pending_remove()
1684 need_shrink = 1; in shrink_bucket()
1877 do_cancel = 1; in dlm_scan_timeout()
1881 do_warn = 1; in dlm_scan_timeout()
1951 /* b=1 lvb returned to caller in set_lvb_lock()
1953 b=-1 do nothing */ in set_lvb_lock()
1955 b = dlm_lvb_operations[lkb->lkb_grmode + 1][lkb->lkb_rqmode + 1]; in set_lvb_lock()
1957 if (b == 1) { in set_lvb_lock()
2028 struct dlm_message *ms) in set_lvb_lock_pc() argument
2038 b = dlm_lvb_operations[lkb->lkb_grmode + 1][lkb->lkb_rqmode + 1]; in set_lvb_lock_pc()
2039 if (b == 1) { in set_lvb_lock_pc()
2040 int len = receive_extralen(ms); in set_lvb_lock_pc()
2043 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in set_lvb_lock_pc()
2044 lkb->lkb_lvbseq = ms->m_lvbseq; in set_lvb_lock_pc()
2079 1 moved lock to granted
2080 -1 removed lock */
2093 rv = 1; in revert_lock()
2101 rv = -1; in revert_lock()
2135 struct dlm_message *ms) in grant_lock_pc() argument
2137 set_lvb_lock_pc(r, lkb, ms); in grant_lock_pc()
2173 static void munge_altmode(struct dlm_lkb *lkb, struct dlm_message *ms) in munge_altmode() argument
2175 if (ms->m_type != DLM_MSG_REQUEST_REPLY && in munge_altmode()
2176 ms->m_type != DLM_MSG_GRANT) { in munge_altmode()
2178 lkb->lkb_id, ms->m_type); in munge_altmode()
2197 return 1; in first_in_list()
2212 return 1; in queue_conflict()
2265 lkb_is_ahead = 1; in conversion_deadlock_detect()
2271 return 1; in conversion_deadlock_detect()
2275 return 1; in conversion_deadlock_detect()
2282 * Return 1 if the lock can be granted, 0 otherwise.
2287 * now is 1 if the function is being called in the context of the
2291 * recover is 1 if dlm_recover_grant() is trying to grant conversions
2316 * be 1. The full condition to grant an expedite request: (now && in _can_be_granted()
2322 return 1; in _can_be_granted()
2356 return 1; in _can_be_granted()
2382 return 1; in _can_be_granted()
2391 return 1; in _can_be_granted()
2402 return 1; in _can_be_granted()
2411 return 1; in _can_be_granted()
2426 return 1; in _can_be_granted()
2438 return 1; in _can_be_granted()
2525 grant_restart = 1; in grant_pending_convert()
2534 demote_restart = 1; in grant_pending_convert()
2561 *cw = 1; in grant_pending_convert()
2567 quit = 1; in grant_pending_convert()
2587 *cw = 1; in grant_pending_wait()
2594 /* cw of 1 means there's a lock with a rqmode of DLM_LOCK_CW that's blocked
2603 return 1; in lock_requires_bast()
2608 !__dlm_compat_matrix[gr->lkb_grmode+1][high+1]) in lock_requires_bast()
2609 return 1; in lock_requires_bast()
2654 return 1; in modes_require_bast()
2659 return 1; in modes_require_bast()
2705 1: the rsb master is not available and the lkb has been placed on
2722 return 1; in set_master()
2755 return 1; in set_master()
2908 !__quecvt_compat_matrix[lkb->lkb_grmode+1][args->mode+1]) in validate_lock_args()
2935 /* note: it's valid for lkb_nodeid/res_nodeid to be -1 when we get here
3080 if (can_be_granted(r, lkb, 1, 0, NULL)) { in do_request()
3120 if (can_be_granted(r, lkb, 1, 0, &deadlk)) { in do_convert()
3146 if (_can_be_granted(r, lkb, 1, 0)) { in do_convert()
3409 * Two stage 1 varieties: dlm_lock() and dlm_unlock()
3534 struct dlm_message *ms; in _create_message() local
3548 ms = (struct dlm_message *) mb; in _create_message()
3550 ms->m_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR); in _create_message()
3551 ms->m_header.h_lockspace = ls->ls_global_id; in _create_message()
3552 ms->m_header.h_nodeid = dlm_our_nodeid(); in _create_message()
3553 ms->m_header.h_length = mb_len; in _create_message()
3554 ms->m_header.h_cmd = DLM_MSG; in _create_message()
3556 ms->m_type = mstype; in _create_message()
3559 *ms_ret = ms; in _create_message()
3593 static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms) in send_message() argument
3595 dlm_message_out(ms); in send_message()
3601 struct dlm_message *ms) in send_args() argument
3603 ms->m_nodeid = lkb->lkb_nodeid; in send_args()
3604 ms->m_pid = lkb->lkb_ownpid; in send_args()
3605 ms->m_lkid = lkb->lkb_id; in send_args()
3606 ms->m_remid = lkb->lkb_remid; in send_args()
3607 ms->m_exflags = lkb->lkb_exflags; in send_args()
3608 ms->m_sbflags = lkb->lkb_sbflags; in send_args()
3609 ms->m_flags = lkb->lkb_flags; in send_args()
3610 ms->m_lvbseq = lkb->lkb_lvbseq; in send_args()
3611 ms->m_status = lkb->lkb_status; in send_args()
3612 ms->m_grmode = lkb->lkb_grmode; in send_args()
3613 ms->m_rqmode = lkb->lkb_rqmode; in send_args()
3614 ms->m_hash = r->res_hash; in send_args()
3620 ms->m_asts |= DLM_CB_BAST; in send_args()
3622 ms->m_asts |= DLM_CB_CAST; in send_args()
3627 switch (ms->m_type) { in send_args()
3630 memcpy(ms->m_extra, r->res_name, r->res_length); in send_args()
3639 memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen); in send_args()
3646 struct dlm_message *ms; in send_common() local
3656 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh); in send_common()
3660 send_args(r, lkb, ms); in send_common()
3662 error = send_message(mh, ms); in send_common()
3711 struct dlm_message *ms; in send_grant() local
3717 error = create_message(r, lkb, to_nodeid, DLM_MSG_GRANT, &ms, &mh); in send_grant()
3721 send_args(r, lkb, ms); in send_grant()
3723 ms->m_result = 0; in send_grant()
3725 error = send_message(mh, ms); in send_grant()
3732 struct dlm_message *ms; in send_bast() local
3738 error = create_message(r, NULL, to_nodeid, DLM_MSG_BAST, &ms, &mh); in send_bast()
3742 send_args(r, lkb, ms); in send_bast()
3744 ms->m_bastmode = mode; in send_bast()
3746 error = send_message(mh, ms); in send_bast()
3753 struct dlm_message *ms; in send_lookup() local
3763 error = create_message(r, NULL, to_nodeid, DLM_MSG_LOOKUP, &ms, &mh); in send_lookup()
3767 send_args(r, lkb, ms); in send_lookup()
3769 error = send_message(mh, ms); in send_lookup()
3781 struct dlm_message *ms; in send_remove() local
3787 error = create_message(r, NULL, to_nodeid, DLM_MSG_REMOVE, &ms, &mh); in send_remove()
3791 memcpy(ms->m_extra, r->res_name, r->res_length); in send_remove()
3792 ms->m_hash = r->res_hash; in send_remove()
3794 error = send_message(mh, ms); in send_remove()
3802 struct dlm_message *ms; in send_common_reply() local
3808 error = create_message(r, lkb, to_nodeid, mstype, &ms, &mh); in send_common_reply()
3812 send_args(r, lkb, ms); in send_common_reply()
3814 ms->m_result = rv; in send_common_reply()
3816 error = send_message(mh, ms); in send_common_reply()
3845 struct dlm_message *ms; in send_lookup_reply() local
3849 error = create_message(r, NULL, nodeid, DLM_MSG_LOOKUP_REPLY, &ms, &mh); in send_lookup_reply()
3853 ms->m_lkid = ms_in->m_lkid; in send_lookup_reply()
3854 ms->m_result = rv; in send_lookup_reply()
3855 ms->m_nodeid = ret_nodeid; in send_lookup_reply()
3857 error = send_message(mh, ms); in send_lookup_reply()
3866 static void receive_flags(struct dlm_lkb *lkb, struct dlm_message *ms) in receive_flags() argument
3868 lkb->lkb_exflags = ms->m_exflags; in receive_flags()
3869 lkb->lkb_sbflags = ms->m_sbflags; in receive_flags()
3871 (ms->m_flags & 0x0000FFFF); in receive_flags()
3874 static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in receive_flags_reply() argument
3876 if (ms->m_flags == DLM_IFL_STUB_MS) in receive_flags_reply()
3879 lkb->lkb_sbflags = ms->m_sbflags; in receive_flags_reply()
3881 (ms->m_flags & 0x0000FFFF); in receive_flags_reply()
3884 static int receive_extralen(struct dlm_message *ms) in receive_extralen() argument
3886 return (ms->m_header.h_length - sizeof(struct dlm_message)); in receive_extralen()
3890 struct dlm_message *ms) in receive_lvb() argument
3899 len = receive_extralen(ms); in receive_lvb()
3902 memcpy(lkb->lkb_lvbptr, ms->m_extra, len); in receive_lvb()
3918 struct dlm_message *ms) in receive_request_args() argument
3920 lkb->lkb_nodeid = ms->m_header.h_nodeid; in receive_request_args()
3921 lkb->lkb_ownpid = ms->m_pid; in receive_request_args()
3922 lkb->lkb_remid = ms->m_lkid; in receive_request_args()
3924 lkb->lkb_rqmode = ms->m_rqmode; in receive_request_args()
3926 lkb->lkb_bastfn = (ms->m_asts & DLM_CB_BAST) ? &fake_bastfn : NULL; in receive_request_args()
3927 lkb->lkb_astfn = (ms->m_asts & DLM_CB_CAST) ? &fake_astfn : NULL; in receive_request_args()
3940 struct dlm_message *ms) in receive_convert_args() argument
3945 if (receive_lvb(ls, lkb, ms)) in receive_convert_args()
3948 lkb->lkb_rqmode = ms->m_rqmode; in receive_convert_args()
3949 lkb->lkb_lvbseq = ms->m_lvbseq; in receive_convert_args()
3955 struct dlm_message *ms) in receive_unlock_args() argument
3957 if (receive_lvb(ls, lkb, ms)) in receive_unlock_args()
3965 static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms) in setup_stub_lkb() argument
3968 lkb->lkb_nodeid = ms->m_header.h_nodeid; in setup_stub_lkb()
3969 lkb->lkb_remid = ms->m_lkid; in setup_stub_lkb()
3975 static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms) in validate_message() argument
3977 int from = ms->m_header.h_nodeid; in validate_message()
3981 if (ms->m_flags & DLM_IFL_USER && ~lkb->lkb_flags & DLM_IFL_USER) { in validate_message()
3988 switch (ms->m_type) { in validate_message()
4008 else if (lkb->lkb_nodeid != -1 && lkb->lkb_nodeid != from) in validate_message()
4020 ms->m_type, from, lkb->lkb_id, lkb->lkb_remid, in validate_message()
4027 char name[DLM_RESNAME_MAXLEN + 1]; in send_repeat_remove()
4028 struct dlm_message *ms; in send_repeat_remove() local
4038 b = hash & (ls->ls_rsbtbl_size - 1); in send_repeat_remove()
4068 dir_nodeid, DLM_MSG_REMOVE, &ms, &mh); in send_repeat_remove()
4072 memcpy(ms->m_extra, name, len); in send_repeat_remove()
4073 ms->m_hash = hash; in send_repeat_remove()
4075 send_message(mh, ms); in send_repeat_remove()
4084 static int receive_request(struct dlm_ls *ls, struct dlm_message *ms) in receive_request() argument
4091 from_nodeid = ms->m_header.h_nodeid; in receive_request()
4097 receive_flags(lkb, ms); in receive_request()
4099 error = receive_request_args(ls, lkb, ms); in receive_request()
4111 namelen = receive_extralen(ms); in receive_request()
4113 error = find_rsb(ls, ms->m_extra, namelen, from_nodeid, in receive_request()
4164 ms->m_lkid, from_nodeid, error); in receive_request()
4168 send_repeat_remove(ls, ms->m_extra, namelen); in receive_request()
4172 setup_stub_lkb(ls, ms); in receive_request()
4177 static int receive_convert(struct dlm_ls *ls, struct dlm_message *ms) in receive_convert() argument
4181 int error, reply = 1; in receive_convert()
4183 error = find_lkb(ls, ms->m_remid, &lkb); in receive_convert()
4187 if (lkb->lkb_remid != ms->m_lkid) { in receive_convert()
4191 ms->m_header.h_nodeid, ms->m_lkid); in receive_convert()
4202 error = validate_message(lkb, ms); in receive_convert()
4206 receive_flags(lkb, ms); in receive_convert()
4208 error = receive_convert_args(ls, lkb, ms); in receive_convert()
4227 setup_stub_lkb(ls, ms); in receive_convert()
4232 static int receive_unlock(struct dlm_ls *ls, struct dlm_message *ms) in receive_unlock() argument
4238 error = find_lkb(ls, ms->m_remid, &lkb); in receive_unlock()
4242 if (lkb->lkb_remid != ms->m_lkid) { in receive_unlock()
4245 ms->m_header.h_nodeid, ms->m_lkid); in receive_unlock()
4256 error = validate_message(lkb, ms); in receive_unlock()
4260 receive_flags(lkb, ms); in receive_unlock()
4262 error = receive_unlock_args(ls, lkb, ms); in receive_unlock()
4278 setup_stub_lkb(ls, ms); in receive_unlock()
4283 static int receive_cancel(struct dlm_ls *ls, struct dlm_message *ms) in receive_cancel() argument
4289 error = find_lkb(ls, ms->m_remid, &lkb); in receive_cancel()
4293 receive_flags(lkb, ms); in receive_cancel()
4300 error = validate_message(lkb, ms); in receive_cancel()
4314 setup_stub_lkb(ls, ms); in receive_cancel()
4319 static int receive_grant(struct dlm_ls *ls, struct dlm_message *ms) in receive_grant() argument
4325 error = find_lkb(ls, ms->m_remid, &lkb); in receive_grant()
4334 error = validate_message(lkb, ms); in receive_grant()
4338 receive_flags_reply(lkb, ms); in receive_grant()
4340 munge_altmode(lkb, ms); in receive_grant()
4341 grant_lock_pc(r, lkb, ms); in receive_grant()
4350 static int receive_bast(struct dlm_ls *ls, struct dlm_message *ms) in receive_bast() argument
4356 error = find_lkb(ls, ms->m_remid, &lkb); in receive_bast()
4365 error = validate_message(lkb, ms); in receive_bast()
4369 queue_bast(r, lkb, ms->m_bastmode); in receive_bast()
4370 lkb->lkb_highbast = ms->m_bastmode; in receive_bast()
4378 static void receive_lookup(struct dlm_ls *ls, struct dlm_message *ms) in receive_lookup() argument
4382 from_nodeid = ms->m_header.h_nodeid; in receive_lookup()
4385 len = receive_extralen(ms); in receive_lookup()
4387 error = dlm_master_lookup(ls, from_nodeid, ms->m_extra, len, 0, in receive_lookup()
4392 receive_request(ls, ms); in receive_lookup()
4395 send_lookup_reply(ls, ms, ret_nodeid, error); in receive_lookup()
4398 static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms) in receive_remove() argument
4400 char name[DLM_RESNAME_MAXLEN+1]; in receive_remove()
4405 from_nodeid = ms->m_header.h_nodeid; in receive_remove()
4407 len = receive_extralen(ms); in receive_remove()
4415 dir_nodeid = dlm_hash2nodeid(ls, ms->m_hash); in receive_remove()
4432 memcpy(name, ms->m_extra, len); in receive_remove()
4435 b = hash & (ls->ls_rsbtbl_size - 1); in receive_remove()
4486 static void receive_purge(struct dlm_ls *ls, struct dlm_message *ms) in receive_purge() argument
4488 do_purge(ls, ms->m_nodeid, ms->m_pid); in receive_purge()
4491 static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_request_reply() argument
4496 int from_nodeid = ms->m_header.h_nodeid; in receive_request_reply()
4498 error = find_lkb(ls, ms->m_remid, &lkb); in receive_request_reply()
4506 error = validate_message(lkb, ms); in receive_request_reply()
4514 lkb->lkb_id, from_nodeid, ms->m_lkid, ms->m_result); in receive_request_reply()
4528 result = ms->m_result; in receive_request_reply()
4541 receive_flags_reply(lkb, ms); in receive_request_reply()
4542 lkb->lkb_remid = ms->m_lkid; in receive_request_reply()
4544 munge_altmode(lkb, ms); in receive_request_reply()
4549 grant_lock_pc(r, lkb, ms); in receive_request_reply()
4567 r->res_nodeid = -1; in receive_request_reply()
4568 lkb->lkb_nodeid = -1; in receive_request_reply()
4612 struct dlm_message *ms) in __receive_convert_reply() argument
4615 switch (ms->m_result) { in __receive_convert_reply()
4622 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4629 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4639 receive_flags_reply(lkb, ms); in __receive_convert_reply()
4642 grant_lock_pc(r, lkb, ms); in __receive_convert_reply()
4648 lkb->lkb_id, ms->m_header.h_nodeid, ms->m_lkid, in __receive_convert_reply()
4649 ms->m_result); in __receive_convert_reply()
4655 static void _receive_convert_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_convert_reply() argument
4663 error = validate_message(lkb, ms); in _receive_convert_reply()
4668 error = remove_from_waiters_ms(lkb, ms); in _receive_convert_reply()
4672 __receive_convert_reply(r, lkb, ms); in _receive_convert_reply()
4678 static int receive_convert_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_convert_reply() argument
4683 error = find_lkb(ls, ms->m_remid, &lkb); in receive_convert_reply()
4687 _receive_convert_reply(lkb, ms); in receive_convert_reply()
4692 static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_unlock_reply() argument
4700 error = validate_message(lkb, ms); in _receive_unlock_reply()
4705 error = remove_from_waiters_ms(lkb, ms); in _receive_unlock_reply()
4711 switch (ms->m_result) { in _receive_unlock_reply()
4713 receive_flags_reply(lkb, ms); in _receive_unlock_reply()
4721 lkb->lkb_id, ms->m_result); in _receive_unlock_reply()
4728 static int receive_unlock_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_unlock_reply() argument
4733 error = find_lkb(ls, ms->m_remid, &lkb); in receive_unlock_reply()
4737 _receive_unlock_reply(lkb, ms); in receive_unlock_reply()
4742 static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms) in _receive_cancel_reply() argument
4750 error = validate_message(lkb, ms); in _receive_cancel_reply()
4755 error = remove_from_waiters_ms(lkb, ms); in _receive_cancel_reply()
4761 switch (ms->m_result) { in _receive_cancel_reply()
4763 receive_flags_reply(lkb, ms); in _receive_cancel_reply()
4771 lkb->lkb_id, ms->m_result); in _receive_cancel_reply()
4778 static int receive_cancel_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_cancel_reply() argument
4783 error = find_lkb(ls, ms->m_remid, &lkb); in receive_cancel_reply()
4787 _receive_cancel_reply(lkb, ms); in receive_cancel_reply()
4792 static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms) in receive_lookup_reply() argument
4799 error = find_lkb(ls, ms->m_lkid, &lkb); in receive_lookup_reply()
4801 log_error(ls, "receive_lookup_reply no lkid %x", ms->m_lkid); in receive_lookup_reply()
4805 /* ms->m_result is the value returned by dlm_master_lookup on dir node in receive_lookup_reply()
4816 ret_nodeid = ms->m_nodeid; in receive_lookup_reply()
4828 lkb->lkb_id, ms->m_header.h_nodeid, ret_nodeid, in receive_lookup_reply()
4836 do_lookup_list = 1; in receive_lookup_reply()
4838 } else if (ret_nodeid == -1) { in receive_lookup_reply()
4841 lkb->lkb_id, ms->m_header.h_nodeid); in receive_lookup_reply()
4843 r->res_nodeid = -1; in receive_lookup_reply()
4844 lkb->lkb_nodeid = -1; in receive_lookup_reply()
4870 static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms, in _receive_message() argument
4875 if (!dlm_is_member(ls, ms->m_header.h_nodeid)) { in _receive_message()
4877 ms->m_type, ms->m_header.h_nodeid, ms->m_lkid, in _receive_message()
4878 ms->m_remid, ms->m_result); in _receive_message()
4882 switch (ms->m_type) { in _receive_message()
4887 error = receive_request(ls, ms); in _receive_message()
4891 error = receive_convert(ls, ms); in _receive_message()
4895 error = receive_unlock(ls, ms); in _receive_message()
4899 noent = 1; in _receive_message()
4900 error = receive_cancel(ls, ms); in _receive_message()
4906 error = receive_request_reply(ls, ms); in _receive_message()
4910 error = receive_convert_reply(ls, ms); in _receive_message()
4914 error = receive_unlock_reply(ls, ms); in _receive_message()
4918 error = receive_cancel_reply(ls, ms); in _receive_message()
4924 noent = 1; in _receive_message()
4925 error = receive_grant(ls, ms); in _receive_message()
4929 noent = 1; in _receive_message()
4930 error = receive_bast(ls, ms); in _receive_message()
4936 receive_lookup(ls, ms); in _receive_message()
4940 receive_remove(ls, ms); in _receive_message()
4946 receive_lookup_reply(ls, ms); in _receive_message()
4952 receive_purge(ls, ms); in _receive_message()
4956 log_error(ls, "unknown message type %d", ms->m_type); in _receive_message()
4972 ms->m_type, ms->m_remid, ms->m_header.h_nodeid, in _receive_message()
4973 ms->m_lkid, saved_seq); in _receive_message()
4976 ms->m_type, ms->m_remid, ms->m_header.h_nodeid, in _receive_message()
4977 ms->m_lkid, saved_seq); in _receive_message()
4979 if (ms->m_type == DLM_MSG_CONVERT) in _receive_message()
4980 dlm_dump_rsb_hash(ls, ms->m_hash); in _receive_message()
4986 ms->m_type, ms->m_header.h_nodeid, in _receive_message()
4987 ms->m_lkid, ms->m_remid, saved_seq); in _receive_message()
4999 static void dlm_receive_message(struct dlm_ls *ls, struct dlm_message *ms, in dlm_receive_message() argument
5008 ms->m_type, nodeid); in dlm_receive_message()
5012 dlm_add_requestqueue(ls, nodeid, ms); in dlm_receive_message()
5015 _receive_message(ls, ms, 0); in dlm_receive_message()
5022 void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms, in dlm_receive_message_saved() argument
5025 _receive_message(ls, ms, saved_seq); in dlm_receive_message_saved()
5117 return 1; in waiter_needs_recovery()
5120 return 1; in waiter_needs_recovery()
5251 found = 1; in find_resend_waiter()
5284 while (1) { in dlm_recover_waiters_post()
5347 err = 1; in dlm_recover_waiters_post()
5361 err = 1; in dlm_recover_waiters_post()
5536 while (1) { in dlm_recover_grant()
5539 if (bucket == ls->ls_rsbtbl_size - 1) in dlm_recover_grant()
5930 found_other_mode = 1; in dlm_user_adopt_orphan()
5934 found = 1; in dlm_user_adopt_orphan()
6180 1) references lkb->ua which we free here and 2) adds lkbs to proc->asts,
6195 while (1) { in dlm_clear_proc_locks()
6236 while (1) { in purge_proc_locks()
6291 struct dlm_message *ms; in send_purge() local
6296 DLM_MSG_PURGE, &ms, &mh); in send_purge()
6299 ms->m_nodeid = nodeid; in send_purge()
6300 ms->m_pid = pid; in send_purge()
6302 return send_message(mh, ms); in send_purge()