Lines Matching refs:dlm
60 static enum dlm_status dlm_send_remote_lock_request(struct dlm_ctxt *dlm,
119 static enum dlm_status dlmlock_master(struct dlm_ctxt *dlm, in dlmlock_master() argument
133 lock->ml.node != dlm->node_num) { in dlmlock_master()
161 "node %u for reco lock\n", dlm->name, in dlmlock_master()
172 "node %u for reco lock\n", dlm->name, in dlmlock_master()
188 dlm_queue_ast(dlm, lock); in dlmlock_master()
190 dlm_lockres_release_ast(dlm, res); in dlmlock_master()
192 dlm_lockres_calc_usage(dlm, res); in dlmlock_master()
194 dlm_kick_thread(dlm, res); in dlmlock_master()
215 static enum dlm_status dlmlock_remote(struct dlm_ctxt *dlm, in dlmlock_remote() argument
232 if (res->owner == dlm->node_num) { in dlmlock_remote()
246 status = dlm_send_remote_lock_request(dlm, res, lock, flags); in dlmlock_remote()
260 dlm->name, res->owner); in dlmlock_remote()
281 dlm->name, dlm->node_num, res->owner); in dlmlock_remote()
287 dlm_lockres_calc_usage(dlm, res); in dlmlock_remote()
301 static enum dlm_status dlm_send_remote_lock_request(struct dlm_ctxt *dlm, in dlm_send_remote_lock_request() argument
310 create.node_idx = dlm->node_num; in dlm_send_remote_lock_request()
317 tmpret = o2net_send_message(DLM_CREATE_LOCK_MSG, dlm->key, &create, in dlm_send_remote_lock_request()
324 "currently.\n", dlm->name, create.namelen, in dlm_send_remote_lock_request()
331 "node %u\n", dlm->name, create.namelen, create.name, in dlm_send_remote_lock_request()
461 struct dlm_ctxt *dlm = data; in dlm_create_lock_handler() local
470 BUG_ON(!dlm); in dlm_create_lock_handler()
472 if (!dlm_grab(dlm)) in dlm_create_lock_handler()
478 if (!dlm_domain_fully_joined(dlm)) { in dlm_create_lock_handler()
481 dlm->name, create->node_idx, namelen, name); in dlm_create_lock_handler()
509 res = dlm_lookup_lockres(dlm, name, namelen); in dlm_create_lock_handler()
526 status = dlmlock_master(dlm, res, newlock, be32_to_cpu(create->flags)); in dlm_create_lock_handler()
535 dlm_put(dlm); in dlm_create_lock_handler()
558 enum dlm_status dlmlock(struct dlm_ctxt *dlm, int mode, in dlmlock() argument
635 dlm_wait_for_recovery(dlm); in dlmlock()
637 if (res->owner == dlm->node_num) in dlmlock()
638 status = dlmconvert_master(dlm, res, lock, flags, mode); in dlmlock()
640 status = dlmconvert_remote(dlm, res, lock, flags, mode); in dlmlock()
668 dlm_get_next_cookie(dlm->node_num, &tmpcookie); in dlmlock()
669 lock = dlm_new_lock(mode, dlm->node_num, tmpcookie, lksb); in dlmlock()
676 dlm_wait_for_recovery(dlm); in dlmlock()
679 res = dlm_get_lock_resource(dlm, name, namelen, flags); in dlmlock()
708 if (res->owner == dlm->node_num) in dlmlock()
709 status = dlmlock_master(dlm, res, lock, flags); in dlmlock()
711 status = dlmlock_remote(dlm, res, lock, flags); in dlmlock()
722 dlm_wait_for_node_death(dlm, res->owner, in dlmlock()
725 dlm_wait_for_recovery(dlm); in dlmlock()
732 dlm_lockres_drop_inflight_ref(dlm, res); in dlmlock()
735 dlm_lockres_calc_usage(dlm, res); in dlmlock()
736 dlm_kick_thread(dlm, res); in dlmlock()