The dlm encodes the node number and a sequence number in the lock cookie.
It also stores the cookie in the lockres in the big endian format to avoid
swapping 8 bytes on each lock request. The bug here was that it was assuming
the cookie to be in the cpu format when decoding it for printing the error
message. This patch swaps the bytes before the print.
Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com>
Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
            past->type != DLM_BAST) {
                mlog(ML_ERROR, "Unknown ast type! %d, cookie=%u:%llu"
                     "name=%.*s\n", past->type, 
-                    dlm_get_lock_cookie_node(cookie),
-                    dlm_get_lock_cookie_seq(cookie),
+                    dlm_get_lock_cookie_node(be64_to_cpu(cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(cookie)),
                     locklen, name);
                ret = DLM_IVLOCKID;
                goto leave;
                mlog(0, "got %sast for unknown lockres! "
                     "cookie=%u:%llu, name=%.*s, namelen=%u\n",
                     past->type == DLM_AST ? "" : "b",
-                    dlm_get_lock_cookie_node(cookie),
-                    dlm_get_lock_cookie_seq(cookie),
+                    dlm_get_lock_cookie_node(be64_to_cpu(cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(cookie)),
                     locklen, name, locklen);
                ret = DLM_IVLOCKID;
                goto leave;
 
        mlog(0, "got %sast for unknown lock!  cookie=%u:%llu, "
             "name=%.*s, namelen=%u\n", past->type == DLM_AST ? "" : "b", 
-            dlm_get_lock_cookie_node(cookie), dlm_get_lock_cookie_seq(cookie),
+            dlm_get_lock_cookie_node(be64_to_cpu(cookie)),
+            dlm_get_lock_cookie_seq(be64_to_cpu(cookie)),
             locklen, name, locklen);
 
        ret = DLM_NORMAL;
 
                __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),
+                    dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
                     lock->ml.convert_type);
                status = DLM_DENIED;
                goto bail;
                status = DLM_IVLOCKID;
                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));
+                    dlm_get_lock_cookie_node(be64_to_cpu(cnv->cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(cnv->cookie)));
                __dlm_print_one_lock_resource(res);
                goto leave;
        }
 
                mlog(ML_NOTICE, "    type=%d, conv=%d, node=%u, "
                       "cookie=%u:%llu, ast=(empty=%c,pend=%c), bast=(empty=%c,pend=%c)\n", 
                       lock->ml.type, lock->ml.convert_type, lock->ml.node, 
-                      dlm_get_lock_cookie_node(lock->ml.cookie), 
-                      dlm_get_lock_cookie_seq(lock->ml.cookie), 
+                    dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
                       list_empty(&lock->ast_list) ? 'y' : 'n',
                       lock->ast_pending ? 'y' : 'n',
                       list_empty(&lock->bast_list) ? 'y' : 'n',
                mlog(ML_NOTICE, "    type=%d, conv=%d, node=%u, "
                       "cookie=%u:%llu, ast=(empty=%c,pend=%c), bast=(empty=%c,pend=%c)\n", 
                       lock->ml.type, lock->ml.convert_type, lock->ml.node, 
-                      dlm_get_lock_cookie_node(lock->ml.cookie), 
-                      dlm_get_lock_cookie_seq(lock->ml.cookie), 
+                    dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
                       list_empty(&lock->ast_list) ? 'y' : 'n',
                       lock->ast_pending ? 'y' : 'n',
                       list_empty(&lock->bast_list) ? 'y' : 'n',
                mlog(ML_NOTICE, "    type=%d, conv=%d, node=%u, "
                       "cookie=%u:%llu, ast=(empty=%c,pend=%c), bast=(empty=%c,pend=%c)\n", 
                       lock->ml.type, lock->ml.convert_type, lock->ml.node, 
-                      dlm_get_lock_cookie_node(lock->ml.cookie), 
-                      dlm_get_lock_cookie_seq(lock->ml.cookie), 
+                    dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
                       list_empty(&lock->ast_list) ? 'y' : 'n',
                       lock->ast_pending ? 'y' : 'n',
                       list_empty(&lock->bast_list) ? 'y' : 'n',
 
                                u64 c = ml->cookie;
                                mlog(ML_ERROR, "could not find local lock "
                                               "with cookie %u:%llu!\n",
-                                              dlm_get_lock_cookie_node(c),
-                                              dlm_get_lock_cookie_seq(c));
+                                    dlm_get_lock_cookie_node(be64_to_cpu(c)),
+                                    dlm_get_lock_cookie_seq(be64_to_cpu(c)));
                                __dlm_print_one_lock_resource(res);
                                BUG();
                        }
                                mlog(ML_ERROR, "%s:%.*s: %u:%llu: lock already "
                                     "exists on this lockres!\n", dlm->name,
                                     res->lockname.len, res->lockname.name,
-                                    dlm_get_lock_cookie_node(c),
-                                    dlm_get_lock_cookie_seq(c));
+                                    dlm_get_lock_cookie_node(be64_to_cpu(c)),
+                                    dlm_get_lock_cookie_seq(be64_to_cpu(c)));
 
                                mlog(ML_NOTICE, "sent lock: type=%d, conv=%d, "
                                     "node=%u, cookie=%u:%llu, queue=%d\n",
                                     ml->type, ml->convert_type, ml->node,
-                                    dlm_get_lock_cookie_node(ml->cookie),
-                                    dlm_get_lock_cookie_seq(ml->cookie),
+                                    dlm_get_lock_cookie_node(be64_to_cpu(ml->cookie)),
+                                    dlm_get_lock_cookie_seq(be64_to_cpu(ml->cookie)),
                                     ml->list);
 
                                __dlm_print_one_lock_resource(res);
 
                /* this should always be coupled with list removal */
                BUG_ON(!(actions & DLM_UNLOCK_REMOVE_LOCK));
                mlog(0, "lock %u:%llu should be gone now! refs=%d\n",
-                    dlm_get_lock_cookie_node(lock->ml.cookie),
-                    dlm_get_lock_cookie_seq(lock->ml.cookie),
+                    dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)),
                     atomic_read(&lock->lock_refs.refcount)-1);
                dlm_lock_put(lock);
        }
        if (!found)
                mlog(ML_ERROR, "failed to find lock to unlock! "
                               "cookie=%u:%llu\n",
-                              dlm_get_lock_cookie_node(unlock->cookie),
-                              dlm_get_lock_cookie_seq(unlock->cookie));
+                    dlm_get_lock_cookie_node(be64_to_cpu(unlock->cookie)),
+                    dlm_get_lock_cookie_seq(be64_to_cpu(unlock->cookie)));
        else
                dlm_lock_put(lock);