Lines Matching defs:dlm

36 static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
38 static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock);
49 static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
51 assert_spin_locked(&dlm->ast_lock);
76 void __dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
80 BUG_ON(!dlm);
85 assert_spin_locked(&dlm->ast_lock);
90 dlm->name, res->lockname.len, res->lockname.name,
98 dlm->name, res->lockname.len, res->lockname.name,
107 if (dlm_should_cancel_bast(dlm, lock)) {
109 dlm->name, res->lockname.len, res->lockname.name,
124 dlm_lockres_release_ast(dlm, res);
126 list_add_tail(&lock->ast_list, &dlm->pending_asts);
131 void dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
133 BUG_ON(!dlm);
136 spin_lock(&dlm->ast_lock);
137 __dlm_queue_ast(dlm, lock);
138 spin_unlock(&dlm->ast_lock);
142 void __dlm_queue_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
146 BUG_ON(!dlm);
149 assert_spin_locked(&dlm->ast_lock);
156 dlm->name, res->lockname.len, res->lockname.name,
163 list_add_tail(&lock->bast_list, &dlm->pending_basts);
168 void dlm_queue_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
170 BUG_ON(!dlm);
173 spin_lock(&dlm->ast_lock);
174 __dlm_queue_bast(dlm, lock);
175 spin_unlock(&dlm->ast_lock);
178 static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
186 if (res->owner == dlm->node_num) {
190 lock->ml.node == dlm->node_num ? "master" :
208 void dlm_do_local_ast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
213 mlog(0, "%s: res %.*s, lock %u:%llu, Local AST\n", dlm->name,
219 BUG_ON(lock->ml.node != dlm->node_num);
221 dlm_update_lvb(dlm, res, lock);
226 int dlm_do_remote_ast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
233 mlog(0, "%s: res %.*s, lock %u:%llu, Remote AST\n", dlm->name,
239 BUG_ON(lock->ml.node == dlm->node_num);
242 dlm_update_lvb(dlm, res, lock);
246 ret = dlm_send_proxy_ast(dlm, res, lock, lksbflags);
250 void dlm_do_local_bast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
255 BUG_ON(lock->ml.node != dlm->node_num);
258 dlm->name, res->lockname.len, res->lockname.name,
273 struct dlm_ctxt *dlm = data;
283 if (!dlm_grab(dlm)) {
288 mlog_bug_on_msg(!dlm_domain_fully_joined(dlm),
289 "Domain %s not fully joined!\n", dlm->name);
328 res = dlm_lookup_lockres(dlm, name, locklen);
340 BUG_ON(res->owner == dlm->node_num);
342 mlog(0, "%s: res %.*s\n", dlm->name, res->lockname.len,
396 dlm->name, res->lockname.len, res->lockname.name,
419 dlm_do_local_ast(dlm, res, lock);
421 dlm_do_local_bast(dlm, res, lock, past->blocked_type);
427 dlm_put(dlm);
433 int dlm_send_proxy_ast_msg(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
443 mlog(0, "%s: res %.*s, to %u, type %d, blocked_type %d\n", dlm->name,
448 past.node_idx = dlm->node_num;
464 ret = o2net_send_message_vec(DLM_PROXY_AST_MSG, dlm->key, vec, veclen,
468 dlm->name, res->lockname.len, res->lockname.name, ret,