Lines Matching refs:res
42 struct dlm_lock_resource *res,
47 struct dlm_lock_resource *res,
53 struct dlm_lock_resource *res,
76 * taken: res->spinlock and lock->spinlock taken and dropped
82 struct dlm_lock_resource *res,
98 BUG_ON(res->owner != dlm->node_num);
100 BUG_ON(res->owner == dlm->node_num);
109 "while waiting for an ast!", res->lockname.len,
110 res->lockname.name);
114 spin_lock(&res->spinlock);
115 if (res->state & DLM_LOCK_RES_IN_PROGRESS) {
118 spin_unlock(&res->spinlock);
122 __dlm_wait_on_lockres(res);
123 res->state |= DLM_LOCK_RES_IN_PROGRESS;
127 if (res->state & DLM_LOCK_RES_RECOVERING) {
132 if (res->state & DLM_LOCK_RES_MIGRATING) {
140 status = dlm_get_cancel_actions(dlm, res, lock, lksb, &actions);
142 status = dlm_get_unlock_actions(dlm, res, lock, lksb, &actions);
151 memcpy(res->lvb, lksb->lvb, DLM_LVB_LEN);
158 owner = res->owner;
165 spin_unlock(&res->spinlock);
166 status = dlm_send_remote_unlock_request(dlm, res, lock, lksb,
168 spin_lock(&res->spinlock);
185 dlm->name, res->lockname.len,
186 res->lockname.name,
213 list_add_tail(&lock->list, &res->granted);
225 res->state &= ~DLM_LOCK_RES_IN_PROGRESS;
226 if (!dlm_lock_on_list(&res->converting, lock))
231 spin_unlock(&res->spinlock);
232 wake_up(&res->wq);
235 spin_lock(&res->spinlock);
241 __dlm_wait_on_lockres_flags(res, DLM_LOCK_RES_RECOVERING);
242 spin_unlock(&res->spinlock);
265 void dlm_commit_pending_unlock(struct dlm_lock_resource *res,
273 void dlm_commit_pending_cancel(struct dlm_lock_resource *res,
276 list_move_tail(&lock->list, &res->granted);
282 struct dlm_lock_resource *res,
288 return dlmunlock_common(dlm, res, lock, lksb, flags, call_ast, 1);
292 struct dlm_lock_resource *res,
297 return dlmunlock_common(dlm, res, lock, lksb, flags, call_ast, 0);
308 struct dlm_lock_resource *res,
321 mlog(0, "%.*s\n", res->lockname.len, res->lockname.name);
329 res->lockname.len, res->lockname.name);
337 unlock.namelen = res->lockname.len;
338 memcpy(unlock.name, res->lockname.name, unlock.namelen);
384 * taken: takes and drops res->spinlock
394 struct dlm_lock_resource *res = NULL;
429 res = dlm_lookup_lockres(dlm, unlock->name, unlock->namelen);
430 if (!res) {
434 mlog(0, "returning DLM_FORWARD -- res no longer exists\n");
439 queue=&res->granted;
440 spin_lock(&res->spinlock);
441 if (res->state & DLM_LOCK_RES_RECOVERING) {
442 spin_unlock(&res->spinlock);
448 if (res->state & DLM_LOCK_RES_MIGRATING) {
449 spin_unlock(&res->spinlock);
455 if (res->owner != dlm->node_num) {
456 spin_unlock(&res->spinlock);
476 spin_unlock(&res->spinlock);
496 status = dlmunlock_master(dlm, res, lock, lksb, flags, &ignore);
503 dlm_lockres_calc_usage(dlm, res);
504 dlm_kick_thread(dlm, res);
516 if (res)
517 dlm_lockres_put(res);
526 struct dlm_lock_resource *res,
533 if (dlm_lock_on_list(&res->blocked, lock)) {
538 } else if (dlm_lock_on_list(&res->converting, lock)) {
545 } else if (dlm_lock_on_list(&res->granted, lock)) {
558 struct dlm_lock_resource *res,
566 if (!dlm_lock_on_list(&res->granted, lock)) {
588 struct dlm_lock_resource *res;
616 res = lock->lockres;
617 BUG_ON(!res);
618 dlm_lockres_get(res);
622 mlog(0, "lock=%p res=%p\n", lock, res);
624 spin_lock(&res->spinlock);
625 is_master = (res->owner == dlm->node_num);
628 spin_unlock(&res->spinlock);
631 status = dlmunlock_master(dlm, res, lock, lksb, flags,
636 status = dlmunlock_remote(dlm, res, lock, lksb, flags,
683 dlm_kick_thread(dlm, res);
687 dlm_lockres_calc_usage(dlm, res);
688 dlm_lockres_put(res);