Lines Matching refs:dlm

51 static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
53 static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock);
64 static int dlm_should_cancel_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock) in dlm_should_cancel_bast() argument
66 assert_spin_locked(&dlm->ast_lock); in dlm_should_cancel_bast()
91 void __dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock) in __dlm_queue_ast() argument
95 BUG_ON(!dlm); in __dlm_queue_ast()
100 assert_spin_locked(&dlm->ast_lock); in __dlm_queue_ast()
105 dlm->name, res->lockname.len, res->lockname.name, in __dlm_queue_ast()
113 dlm->name, res->lockname.len, res->lockname.name, in __dlm_queue_ast()
122 if (dlm_should_cancel_bast(dlm, lock)) { in __dlm_queue_ast()
124 dlm->name, res->lockname.len, res->lockname.name, in __dlm_queue_ast()
139 dlm_lockres_release_ast(dlm, res); in __dlm_queue_ast()
141 list_add_tail(&lock->ast_list, &dlm->pending_asts); in __dlm_queue_ast()
146 void dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock) in dlm_queue_ast() argument
148 BUG_ON(!dlm); in dlm_queue_ast()
151 spin_lock(&dlm->ast_lock); in dlm_queue_ast()
152 __dlm_queue_ast(dlm, lock); in dlm_queue_ast()
153 spin_unlock(&dlm->ast_lock); in dlm_queue_ast()
157 void __dlm_queue_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock) in __dlm_queue_bast() argument
161 BUG_ON(!dlm); in __dlm_queue_bast()
164 assert_spin_locked(&dlm->ast_lock); in __dlm_queue_bast()
171 dlm->name, res->lockname.len, res->lockname.name, in __dlm_queue_bast()
178 list_add_tail(&lock->bast_list, &dlm->pending_basts); in __dlm_queue_bast()
183 void dlm_queue_bast(struct dlm_ctxt *dlm, struct dlm_lock *lock) in dlm_queue_bast() argument
185 BUG_ON(!dlm); in dlm_queue_bast()
188 spin_lock(&dlm->ast_lock); in dlm_queue_bast()
189 __dlm_queue_bast(dlm, lock); in dlm_queue_bast()
190 spin_unlock(&dlm->ast_lock); in dlm_queue_bast()
193 static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_update_lvb() argument
201 if (res->owner == dlm->node_num) { in dlm_update_lvb()
205 lock->ml.node == dlm->node_num ? "master" : in dlm_update_lvb()
223 void dlm_do_local_ast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_do_local_ast() argument
228 mlog(0, "%s: res %.*s, lock %u:%llu, Local AST\n", dlm->name, in dlm_do_local_ast()
234 BUG_ON(lock->ml.node != dlm->node_num); in dlm_do_local_ast()
236 dlm_update_lvb(dlm, res, lock); in dlm_do_local_ast()
241 int dlm_do_remote_ast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_do_remote_ast() argument
248 mlog(0, "%s: res %.*s, lock %u:%llu, Remote AST\n", dlm->name, in dlm_do_remote_ast()
254 BUG_ON(lock->ml.node == dlm->node_num); in dlm_do_remote_ast()
257 dlm_update_lvb(dlm, res, lock); in dlm_do_remote_ast()
261 ret = dlm_send_proxy_ast(dlm, res, lock, lksbflags); in dlm_do_remote_ast()
265 void dlm_do_local_bast(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_do_local_bast() argument
270 BUG_ON(lock->ml.node != dlm->node_num); in dlm_do_local_bast()
273 dlm->name, res->lockname.len, res->lockname.name, in dlm_do_local_bast()
288 struct dlm_ctxt *dlm = data; in dlm_proxy_ast_handler() local
298 if (!dlm_grab(dlm)) { in dlm_proxy_ast_handler()
303 mlog_bug_on_msg(!dlm_domain_fully_joined(dlm), in dlm_proxy_ast_handler()
304 "Domain %s not fully joined!\n", dlm->name); in dlm_proxy_ast_handler()
343 res = dlm_lookup_lockres(dlm, name, locklen); in dlm_proxy_ast_handler()
355 BUG_ON(res->owner == dlm->node_num); in dlm_proxy_ast_handler()
357 mlog(0, "%s: res %.*s\n", dlm->name, res->lockname.len, in dlm_proxy_ast_handler()
411 dlm->name, res->lockname.len, res->lockname.name, in dlm_proxy_ast_handler()
434 dlm_do_local_ast(dlm, res, lock); in dlm_proxy_ast_handler()
436 dlm_do_local_bast(dlm, res, lock, past->blocked_type); in dlm_proxy_ast_handler()
442 dlm_put(dlm); in dlm_proxy_ast_handler()
448 int dlm_send_proxy_ast_msg(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, in dlm_send_proxy_ast_msg() argument
458 mlog(0, "%s: res %.*s, to %u, type %d, blocked_type %d\n", dlm->name, in dlm_send_proxy_ast_msg()
463 past.node_idx = dlm->node_num; in dlm_send_proxy_ast_msg()
479 ret = o2net_send_message_vec(DLM_PROXY_AST_MSG, dlm->key, vec, veclen, in dlm_send_proxy_ast_msg()
483 dlm->name, res->lockname.len, res->lockname.name, ret, in dlm_send_proxy_ast_msg()