if (lock->ml.node == dlm->node_num)
mlog(0, "doing in-place convert for nonlocal lock\n");
lock->ml.type = type;
- if (lock->lksb->flags & DLM_LKSB_PUT_LVB)
- memcpy(res->lvb, lock->lksb->lvb, DLM_LVB_LEN);
-
status = DLM_NORMAL;
*call_ast = 1;
goto unlock_exit;
lock->ml.convert_type = type;
/* do not alter lock refcount. switching lists. */
- list_move_tail(&lock->list, &res->converting);
+ list_del_init(&lock->list);
+ list_add_tail(&lock->list, &res->converting);
unlock_exit:
spin_unlock(&lock->spinlock);
struct dlm_lock *lock)
{
/* do not alter lock refcount. switching lists. */
- list_move_tail(&lock->list, &res->granted);
+ list_del_init(&lock->list);
+ list_add_tail(&lock->list, &res->granted);
lock->ml.convert_type = LKM_IVMODE;
lock->lksb->flags &= ~(DLM_LKSB_GET_LVB|DLM_LKSB_PUT_LVB);
}
if (lock->ml.convert_type != LKM_IVMODE) {
__dlm_print_one_lock_resource(res);
mlog(ML_ERROR, "converting a remote lock that is already "
- "converting! (cookie=%u:%llu, conv=%d)\n",
- dlm_get_lock_cookie_node(lock->ml.cookie),
- dlm_get_lock_cookie_seq(lock->ml.cookie),
- lock->ml.convert_type);
+ "converting! (cookie=%"MLFu64", conv=%d)\n",
+ lock->ml.cookie, lock->ml.convert_type);
status = DLM_DENIED;
goto bail;
}
res->state |= DLM_LOCK_RES_IN_PROGRESS;
/* move lock to local convert queue */
/* do not alter lock refcount. switching lists. */
- list_move_tail(&lock->list, &res->converting);
+ list_del_init(&lock->list);
+ list_add_tail(&lock->list, &res->converting);
lock->convert_pending = 1;
lock->ml.convert_type = type;
}
spin_lock(&res->spinlock);
- status = __dlm_lockres_state_to_status(res);
- if (status != DLM_NORMAL) {
- spin_unlock(&res->spinlock);
- dlm_error(status);
- goto leave;
- }
list_for_each(iter, &res->granted) {
lock = list_entry(iter, struct dlm_lock, list);
if (lock->ml.cookie == cnv->cookie &&
}
lock = NULL;
}
- if (!lock) {
- __dlm_print_one_lock_resource(res);
- list_for_each(iter, &res->granted) {
- lock = list_entry(iter, struct dlm_lock, list);
- if (lock->ml.node == cnv->node_idx) {
- mlog(ML_ERROR, "There is something here "
- "for node %u, lock->ml.cookie=%llu, "
- "cnv->cookie=%llu\n", cnv->node_idx,
- (unsigned long long)lock->ml.cookie,
- (unsigned long long)cnv->cookie);
- break;
- }
- }
- lock = NULL;
- }
spin_unlock(&res->spinlock);
if (!lock) {
status = DLM_IVLOCKID;
leave:
if (!lock)
mlog(ML_ERROR, "did not find lock to convert on grant queue! "
- "cookie=%u:%llu\n",
- dlm_get_lock_cookie_node(cnv->cookie),
- dlm_get_lock_cookie_seq(cnv->cookie));
+ "cookie=%"MLFu64"\n",
+ cnv->cookie);
else
dlm_lock_put(lock);