|
@@ -464,6 +464,12 @@ int dlm_convert_lock_handler(struct o2net_msg *msg, u32 len, void *data)
|
|
|
}
|
|
|
|
|
|
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 &&
|
|
@@ -473,6 +479,20 @@ int dlm_convert_lock_handler(struct o2net_msg *msg, u32 len, void *data)
|
|
|
}
|
|
|
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(0, "There is something here "
|
|
|
+ "for node %u, lock->ml.cookie=%llu, "
|
|
|
+ "cnv->cookie=%llu\n", cnv->node_idx,
|
|
|
+ lock->ml.cookie, cnv->cookie);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lock = NULL;
|
|
|
+ }
|
|
|
spin_unlock(&res->spinlock);
|
|
|
if (!lock) {
|
|
|
status = DLM_IVLOCKID;
|