Lines Matching refs:dlm

34 static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
36 static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock);
47 static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
49 assert_spin_locked(&dlm->ast_lock);
74 void __dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
78 BUG_ON(!dlm);
83 assert_spin_locked(&dlm->ast_lock);
88 dlm->name, res->lockname.len, res->lockname.name,
96 dlm->name, res->lockname.len, res->lockname.name,
105 if (dlm_should_cancel_bast(dlm, lock)) {
107 dlm->name, res->lockname.len, res->lockname.name,
122 dlm_lockres_release_ast(dlm, res);
124 list_add_tail(&lock->ast_list, &dlm->pending_asts);
129 void dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
131 BUG_ON(!dlm);
134 spin_lock(&dlm->ast_lock);
135 __dlm_queue_ast(dlm, lock);
136 spin_unlock(&dlm->ast_lock);
140 void __dlm_queue_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock)
144 BUG_ON(!dlm);
147 assert_spin_locked(&dlm->ast_lock);
154 dlm->name, res->lockname.len, res->lockname.name,
161 list_add_tail(&lock->bast_list, &dlm->pending_basts);
166 static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
174 if (res->owner == dlm->node_num) {
178 lock->ml.node == dlm->node_num ? "master" :
196 void dlm_do_local_ast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
201 mlog(0, "%s: res %.*s, lock %u:%llu, Local AST\n", dlm->name,
207 BUG_ON(lock->ml.node != dlm->node_num);
209 dlm_update_lvb(dlm, res, lock);
214 int dlm_do_remote_ast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
221 mlog(0, "%s: res %.*s, lock %u:%llu, Remote AST\n", dlm->name,
227 BUG_ON(lock->ml.node == dlm->node_num);
230 dlm_update_lvb(dlm, res, lock);
234 ret = dlm_send_proxy_ast(dlm, res, lock, lksbflags);
238 void dlm_do_local_bast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
243 BUG_ON(lock->ml.node != dlm->node_num);
246 dlm->name, res->lockname.len, res->lockname.name,
261 struct dlm_ctxt *dlm = data;
271 if (!dlm_grab(dlm)) {
276 mlog_bug_on_msg(!dlm_domain_fully_joined(dlm),
277 "Domain %s not fully joined!\n", dlm->name);
316 res = dlm_lookup_lockres(dlm, name, locklen);
328 BUG_ON(res->owner == dlm->node_num);
330 mlog(0, "%s: res %.*s\n", dlm->name, res->lockname.len,
384 dlm->name, res->lockname.len, res->lockname.name,
407 dlm_do_local_ast(dlm, res, lock);
409 dlm_do_local_bast(dlm, res, lock, past->blocked_type);
415 dlm_put(dlm);
421 int dlm_send_proxy_ast_msg(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
431 mlog(0, "%s: res %.*s, to %u, type %d, blocked_type %d\n", dlm->name,
436 past.node_idx = dlm->node_num;
452 ret = o2net_send_message_vec(DLM_PROXY_AST_MSG, dlm->key, vec, veclen,
456 dlm->name, res->lockname.len, res->lockname.name, ret,