Lines Matching defs:dlm

41 static enum dlm_status dlm_get_cancel_actions(struct dlm_ctxt *dlm,
46 static enum dlm_status dlm_get_unlock_actions(struct dlm_ctxt *dlm,
52 static enum dlm_status dlm_send_remote_unlock_request(struct dlm_ctxt *dlm,
81 static enum dlm_status dlmunlock_common(struct dlm_ctxt *dlm,
98 BUG_ON(res->owner != dlm->node_num);
100 BUG_ON(res->owner == dlm->node_num);
102 spin_lock(&dlm->ast_lock);
106 spin_unlock(&dlm->ast_lock);
140 status = dlm_get_cancel_actions(dlm, res, lock, lksb, &actions);
142 status = dlm_get_unlock_actions(dlm, res, lock, lksb, &actions);
166 status = dlm_send_remote_unlock_request(dlm, res, lock, lksb,
185 dlm->name, res->lockname.len,
281 static inline enum dlm_status dlmunlock_master(struct dlm_ctxt *dlm,
288 return dlmunlock_common(dlm, res, lock, lksb, flags, call_ast, 1);
291 static inline enum dlm_status dlmunlock_remote(struct dlm_ctxt *dlm,
297 return dlmunlock_common(dlm, res, lock, lksb, flags, call_ast, 0);
307 static enum dlm_status dlm_send_remote_unlock_request(struct dlm_ctxt *dlm,
323 if (owner == dlm->node_num) {
328 "migration, re-evaluate now\n", dlm->name,
334 unlock.node_idx = dlm->node_num;
350 tmpret = o2net_send_message_vec(DLM_UNLOCK_LOCK_MSG, dlm->key,
359 "node %u\n", tmpret, DLM_UNLOCK_LOCK_MSG, dlm->key, owner);
368 if (dlm_is_node_dead(dlm, owner))
392 struct dlm_ctxt *dlm = data;
421 if (!dlm_grab(dlm))
424 mlog_bug_on_msg(!dlm_domain_fully_joined(dlm),
425 "Domain %s not fully joined!\n", dlm->name);
429 res = dlm_lookup_lockres(dlm, unlock->name, unlock->namelen);
455 if (res->owner != dlm->node_num) {
496 status = dlmunlock_master(dlm, res, lock, lksb, flags, &ignore);
503 dlm_lockres_calc_usage(dlm, res);
504 dlm_kick_thread(dlm, res);
519 dlm_put(dlm);
525 static enum dlm_status dlm_get_cancel_actions(struct dlm_ctxt *dlm,
557 static enum dlm_status dlm_get_unlock_actions(struct dlm_ctxt *dlm,
584 enum dlm_status dlmunlock(struct dlm_ctxt *dlm, struct dlm_lockstatus *lksb,
625 is_master = (res->owner == dlm->node_num);
631 status = dlmunlock_master(dlm, res, lock, lksb, flags,
636 status = dlmunlock_remote(dlm, res, lock, lksb, flags,
671 dlm_kick_thread(dlm, NULL);
672 wait_event(dlm->ast_wq,
673 dlm_lock_basts_flushed(dlm, lock));
683 dlm_kick_thread(dlm, res);
687 dlm_lockres_calc_usage(dlm, res);