• Home
  • Raw
  • Download

Lines Matching refs:res

62 					       struct dlm_lock_resource *res,
92 static int dlm_can_grant_new_lock(struct dlm_lock_resource *res, in dlm_can_grant_new_lock() argument
98 list_for_each(iter, &res->granted) { in dlm_can_grant_new_lock()
105 list_for_each(iter, &res->converting) { in dlm_can_grant_new_lock()
123 struct dlm_lock_resource *res, in dlmlock_master() argument
131 spin_lock(&res->spinlock); in dlmlock_master()
134 status = __dlm_lockres_state_to_status(res); in dlmlock_master()
138 spin_unlock(&res->spinlock); in dlmlock_master()
142 __dlm_wait_on_lockres(res); in dlmlock_master()
143 __dlm_lockres_reserve_ast(res); in dlmlock_master()
145 if (dlm_can_grant_new_lock(res, lock)) { in dlmlock_master()
151 list_add_tail(&lock->list, &res->granted); in dlmlock_master()
158 if (!dlm_is_recovery_lock(res->lockname.name, in dlmlock_master()
159 res->lockname.len)) { in dlmlock_master()
172 if (dlm_is_recovery_lock(res->lockname.name, in dlmlock_master()
173 res->lockname.len)) { in dlmlock_master()
180 list_add_tail(&lock->list, &res->blocked); in dlmlock_master()
187 dlm_lockres_drop_inflight_ref(dlm, res); in dlmlock_master()
189 spin_unlock(&res->spinlock); in dlmlock_master()
190 wake_up(&res->wq); in dlmlock_master()
196 dlm_lockres_release_ast(dlm, res); in dlmlock_master()
198 dlm_lockres_calc_usage(dlm, res); in dlmlock_master()
200 dlm_kick_thread(dlm, res); in dlmlock_master()
205 void dlm_revert_pending_lock(struct dlm_lock_resource *res, in dlm_revert_pending_lock() argument
222 struct dlm_lock_resource *res, in dlmlock_remote() argument
229 mlog(0, "lockres %.*s, flags = 0x%x\n", res->lockname.len, in dlmlock_remote()
230 res->lockname.name, flags); in dlmlock_remote()
232 spin_lock(&res->spinlock); in dlmlock_remote()
235 __dlm_wait_on_lockres(res); in dlmlock_remote()
236 res->state |= DLM_LOCK_RES_IN_PROGRESS; in dlmlock_remote()
240 list_add_tail(&lock->list, &res->blocked); in dlmlock_remote()
242 spin_unlock(&res->spinlock); in dlmlock_remote()
246 status = dlm_send_remote_lock_request(dlm, res, lock, flags); in dlmlock_remote()
248 spin_lock(&res->spinlock); in dlmlock_remote()
249 res->state &= ~DLM_LOCK_RES_IN_PROGRESS; in dlmlock_remote()
253 dlm_is_recovery_lock(res->lockname.name, in dlmlock_remote()
254 res->lockname.len)) { in dlmlock_remote()
260 dlm->name, res->owner); in dlmlock_remote()
271 dlm_revert_pending_lock(res, lock); in dlmlock_remote()
273 } else if (dlm_is_recovery_lock(res->lockname.name, in dlmlock_remote()
274 res->lockname.len)) { in dlmlock_remote()
281 dlm->name, dlm->node_num, res->owner); in dlmlock_remote()
282 list_move_tail(&lock->list, &res->granted); in dlmlock_remote()
284 spin_unlock(&res->spinlock); in dlmlock_remote()
287 dlm_lockres_calc_usage(dlm, res); in dlmlock_remote()
289 wake_up(&res->wq); in dlmlock_remote()
302 struct dlm_lock_resource *res, in dlm_send_remote_lock_request() argument
315 create.namelen = res->lockname.len; in dlm_send_remote_lock_request()
317 memcpy(create.name, res->lockname.name, create.namelen); in dlm_send_remote_lock_request()
320 sizeof(create), res->owner, &status); in dlm_send_remote_lock_request()
328 create.name, res->owner); in dlm_send_remote_lock_request()
329 dlm_print_one_lock_resource(res); in dlm_send_remote_lock_request()
337 "from lock message!\n", res->owner); in dlm_send_remote_lock_request()
379 struct dlm_lock_resource *res) in dlm_lock_attach_lockres() argument
381 dlm_lockres_get(res); in dlm_lock_attach_lockres()
382 lock->lockres = res; in dlm_lock_attach_lockres()
388 struct dlm_lock_resource *res; in dlm_lock_detach_lockres() local
390 res = lock->lockres; in dlm_lock_detach_lockres()
391 if (res) { in dlm_lock_detach_lockres()
394 dlm_lockres_put(res); in dlm_lock_detach_lockres()
467 struct dlm_lock_resource *res = NULL; in dlm_create_lock_handler() local
515 res = dlm_lookup_lockres(dlm, name, namelen); in dlm_create_lock_handler()
516 if (!res) { in dlm_create_lock_handler()
521 spin_lock(&res->spinlock); in dlm_create_lock_handler()
522 status = __dlm_lockres_state_to_status(res); in dlm_create_lock_handler()
523 spin_unlock(&res->spinlock); in dlm_create_lock_handler()
530 dlm_lock_attach_lockres(newlock, res); in dlm_create_lock_handler()
532 status = dlmlock_master(dlm, res, newlock, be32_to_cpu(create->flags)); in dlm_create_lock_handler()
538 if (res) in dlm_create_lock_handler()
539 dlm_lockres_put(res); in dlm_create_lock_handler()
570 struct dlm_lock_resource *res = NULL; in dlmlock() local
617 res = lock->lockres; in dlmlock()
618 if (!res) { in dlmlock()
623 dlm_lockres_get(res); in dlmlock()
643 if (res->owner == dlm->node_num) in dlmlock()
644 status = dlmconvert_master(dlm, res, lock, flags, mode); in dlmlock()
646 status = dlmconvert_remote(dlm, res, lock, flags, mode); in dlmlock()
685 res = dlm_get_lock_resource(dlm, name, namelen, flags); in dlmlock()
686 if (!res) { in dlmlock()
693 mlog(0, "creating lock: lock=%p res=%p\n", lock, res); in dlmlock()
695 dlm_lock_attach_lockres(lock, res); in dlmlock()
714 if (res->owner == dlm->node_num) in dlmlock()
715 status = dlmlock_master(dlm, res, lock, flags); in dlmlock()
717 status = dlmlock_remote(dlm, res, lock, flags); in dlmlock()
732 res->owner); in dlmlock()
736 dlm_wait_for_node_death(dlm, res->owner, in dlmlock()
762 if (res) in dlmlock()
763 dlm_lockres_put(res); in dlmlock()