struct dlm_ls *ls = lkb->lkb_resource->res_ls;
        int error;
 
-       if (ms->m_flags != DLM_IFL_STUB_MS)
+       if (ms->m_flags != cpu_to_le32(DLM_IFL_STUB_MS))
                mutex_lock(&ls->ls_waiters_mutex);
-       error = _remove_from_waiters(lkb, ms->m_type, ms);
-       if (ms->m_flags != DLM_IFL_STUB_MS)
+       error = _remove_from_waiters(lkb, le32_to_cpu(ms->m_type), ms);
+       if (ms->m_flags != cpu_to_le32(DLM_IFL_STUB_MS))
                mutex_unlock(&ls->ls_waiters_mutex);
        return error;
 }
                if (len > r->res_ls->ls_lvblen)
                        len = r->res_ls->ls_lvblen;
                memcpy(lkb->lkb_lvbptr, ms->m_extra, len);
-               lkb->lkb_lvbseq = ms->m_lvbseq;
+               lkb->lkb_lvbseq = le32_to_cpu(ms->m_lvbseq);
        }
 }
 
 
 static void munge_altmode(struct dlm_lkb *lkb, struct dlm_message *ms)
 {
-       if (ms->m_type != DLM_MSG_REQUEST_REPLY &&
-           ms->m_type != DLM_MSG_GRANT) {
+       if (ms->m_type != cpu_to_le32(DLM_MSG_REQUEST_REPLY) &&
+           ms->m_type != cpu_to_le32(DLM_MSG_GRANT)) {
                log_print("munge_altmode %x invalid reply type %d",
-                         lkb->lkb_id, ms->m_type);
+                         lkb->lkb_id, le32_to_cpu(ms->m_type));
                return;
        }
 
        ms->m_header.h_length = cpu_to_le16(mb_len);
        ms->m_header.h_cmd = DLM_MSG;
 
-       ms->m_type = mstype;
+       ms->m_type = cpu_to_le32(mstype);
 
        *mh_ret = mh;
        *ms_ret = ms;
 
 static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms)
 {
-       dlm_message_out(ms);
        dlm_midcomms_commit_mhandle(mh);
        return 0;
 }
 static void send_args(struct dlm_rsb *r, struct dlm_lkb *lkb,
                      struct dlm_message *ms)
 {
-       ms->m_nodeid   = lkb->lkb_nodeid;
-       ms->m_pid      = lkb->lkb_ownpid;
-       ms->m_lkid     = lkb->lkb_id;
-       ms->m_remid    = lkb->lkb_remid;
-       ms->m_exflags  = lkb->lkb_exflags;
-       ms->m_sbflags  = lkb->lkb_sbflags;
-       ms->m_flags    = lkb->lkb_flags;
-       ms->m_lvbseq   = lkb->lkb_lvbseq;
-       ms->m_status   = lkb->lkb_status;
-       ms->m_grmode   = lkb->lkb_grmode;
-       ms->m_rqmode   = lkb->lkb_rqmode;
-       ms->m_hash     = r->res_hash;
+       ms->m_nodeid   = cpu_to_le32(lkb->lkb_nodeid);
+       ms->m_pid      = cpu_to_le32(lkb->lkb_ownpid);
+       ms->m_lkid     = cpu_to_le32(lkb->lkb_id);
+       ms->m_remid    = cpu_to_le32(lkb->lkb_remid);
+       ms->m_exflags  = cpu_to_le32(lkb->lkb_exflags);
+       ms->m_sbflags  = cpu_to_le32(lkb->lkb_sbflags);
+       ms->m_flags    = cpu_to_le32(lkb->lkb_flags);
+       ms->m_lvbseq   = cpu_to_le32(lkb->lkb_lvbseq);
+       ms->m_status   = cpu_to_le32(lkb->lkb_status);
+       ms->m_grmode   = cpu_to_le32(lkb->lkb_grmode);
+       ms->m_rqmode   = cpu_to_le32(lkb->lkb_rqmode);
+       ms->m_hash     = cpu_to_le32(r->res_hash);
 
        /* m_result and m_bastmode are set from function args,
           not from lkb fields */
 
        if (lkb->lkb_bastfn)
-               ms->m_asts |= DLM_CB_BAST;
+               ms->m_asts |= cpu_to_le32(DLM_CB_BAST);
        if (lkb->lkb_astfn)
-               ms->m_asts |= DLM_CB_CAST;
+               ms->m_asts |= cpu_to_le32(DLM_CB_CAST);
 
        /* compare with switch in create_message; send_remove() doesn't
           use send_args() */
 
        switch (ms->m_type) {
-       case DLM_MSG_REQUEST:
-       case DLM_MSG_LOOKUP:
+       case cpu_to_le32(DLM_MSG_REQUEST):
+       case cpu_to_le32(DLM_MSG_LOOKUP):
                memcpy(ms->m_extra, r->res_name, r->res_length);
                break;
-       case DLM_MSG_CONVERT:
-       case DLM_MSG_UNLOCK:
-       case DLM_MSG_REQUEST_REPLY:
-       case DLM_MSG_CONVERT_REPLY:
-       case DLM_MSG_GRANT:
+       case cpu_to_le32(DLM_MSG_CONVERT):
+       case cpu_to_le32(DLM_MSG_UNLOCK):
+       case cpu_to_le32(DLM_MSG_REQUEST_REPLY):
+       case cpu_to_le32(DLM_MSG_CONVERT_REPLY):
+       case cpu_to_le32(DLM_MSG_GRANT):
                if (!lkb->lkb_lvbptr)
                        break;
                memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen);
        /* down conversions go without a reply from the master */
        if (!error && down_conversion(lkb)) {
                remove_from_waiters(lkb, DLM_MSG_CONVERT_REPLY);
-               r->res_ls->ls_stub_ms.m_flags = DLM_IFL_STUB_MS;
-               r->res_ls->ls_stub_ms.m_type = DLM_MSG_CONVERT_REPLY;
+               r->res_ls->ls_stub_ms.m_flags = cpu_to_le32(DLM_IFL_STUB_MS);
+               r->res_ls->ls_stub_ms.m_type = cpu_to_le32(DLM_MSG_CONVERT_REPLY);
                r->res_ls->ls_stub_ms.m_result = 0;
                __receive_convert_reply(r, lkb, &r->res_ls->ls_stub_ms);
        }
 
        send_args(r, lkb, ms);
 
-       ms->m_bastmode = mode;
+       ms->m_bastmode = cpu_to_le32(mode);
 
        error = send_message(mh, ms);
  out:
                goto out;
 
        memcpy(ms->m_extra, r->res_name, r->res_length);
-       ms->m_hash = r->res_hash;
+       ms->m_hash = cpu_to_le32(r->res_hash);
 
        error = send_message(mh, ms);
  out:
 
        send_args(r, lkb, ms);
 
-       ms->m_result = rv;
+       ms->m_result = cpu_to_le32(to_dlm_errno(rv));
 
        error = send_message(mh, ms);
  out:
                goto out;
 
        ms->m_lkid = ms_in->m_lkid;
-       ms->m_result = rv;
-       ms->m_nodeid = ret_nodeid;
+       ms->m_result = cpu_to_le32(to_dlm_errno(rv));
+       ms->m_nodeid = cpu_to_le32(ret_nodeid);
 
        error = send_message(mh, ms);
  out:
 
 static void receive_flags(struct dlm_lkb *lkb, struct dlm_message *ms)
 {
-       lkb->lkb_exflags = ms->m_exflags;
-       lkb->lkb_sbflags = ms->m_sbflags;
+       lkb->lkb_exflags = le32_to_cpu(ms->m_exflags);
+       lkb->lkb_sbflags = le32_to_cpu(ms->m_sbflags);
        lkb->lkb_flags = (lkb->lkb_flags & 0xFFFF0000) |
-                        (ms->m_flags & 0x0000FFFF);
+                         (le32_to_cpu(ms->m_flags) & 0x0000FFFF);
 }
 
 static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
 {
-       if (ms->m_flags == DLM_IFL_STUB_MS)
+       if (ms->m_flags == cpu_to_le32(DLM_IFL_STUB_MS))
                return;
 
-       lkb->lkb_sbflags = ms->m_sbflags;
+       lkb->lkb_sbflags = le32_to_cpu(ms->m_sbflags);
        lkb->lkb_flags = (lkb->lkb_flags & 0xFFFF0000) |
-                        (ms->m_flags & 0x0000FFFF);
+                        (le32_to_cpu(ms->m_flags) & 0x0000FFFF);
 }
 
 static int receive_extralen(struct dlm_message *ms)
                                struct dlm_message *ms)
 {
        lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
-       lkb->lkb_ownpid = ms->m_pid;
-       lkb->lkb_remid = ms->m_lkid;
+       lkb->lkb_ownpid = le32_to_cpu(ms->m_pid);
+       lkb->lkb_remid = le32_to_cpu(ms->m_lkid);
        lkb->lkb_grmode = DLM_LOCK_IV;
-       lkb->lkb_rqmode = ms->m_rqmode;
+       lkb->lkb_rqmode = le32_to_cpu(ms->m_rqmode);
 
-       lkb->lkb_bastfn = (ms->m_asts & DLM_CB_BAST) ? &fake_bastfn : NULL;
-       lkb->lkb_astfn = (ms->m_asts & DLM_CB_CAST) ? &fake_astfn : NULL;
+       lkb->lkb_bastfn = (ms->m_asts & cpu_to_le32(DLM_CB_BAST)) ? &fake_bastfn : NULL;
+       lkb->lkb_astfn = (ms->m_asts & cpu_to_le32(DLM_CB_CAST)) ? &fake_astfn : NULL;
 
        if (lkb->lkb_exflags & DLM_LKF_VALBLK) {
                /* lkb was just created so there won't be an lvb yet */
        if (receive_lvb(ls, lkb, ms))
                return -ENOMEM;
 
-       lkb->lkb_rqmode = ms->m_rqmode;
-       lkb->lkb_lvbseq = ms->m_lvbseq;
+       lkb->lkb_rqmode = le32_to_cpu(ms->m_rqmode);
+       lkb->lkb_lvbseq = le32_to_cpu(ms->m_lvbseq);
 
        return 0;
 }
 {
        struct dlm_lkb *lkb = &ls->ls_stub_lkb;
        lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
-       lkb->lkb_remid = ms->m_lkid;
+       lkb->lkb_remid = le32_to_cpu(ms->m_lkid);
 }
 
 /* This is called after the rsb is locked so that we can safely inspect
        int error = 0;
 
        /* currently mixing of user/kernel locks are not supported */
-       if (ms->m_flags & DLM_IFL_USER && ~lkb->lkb_flags & DLM_IFL_USER) {
+       if (ms->m_flags & cpu_to_le32(DLM_IFL_USER) &&
+           ~lkb->lkb_flags & DLM_IFL_USER) {
                log_error(lkb->lkb_resource->res_ls,
                          "got user dlm message for a kernel lock");
                error = -EINVAL;
        }
 
        switch (ms->m_type) {
-       case DLM_MSG_CONVERT:
-       case DLM_MSG_UNLOCK:
-       case DLM_MSG_CANCEL:
+       case cpu_to_le32(DLM_MSG_CONVERT):
+       case cpu_to_le32(DLM_MSG_UNLOCK):
+       case cpu_to_le32(DLM_MSG_CANCEL):
                if (!is_master_copy(lkb) || lkb->lkb_nodeid != from)
                        error = -EINVAL;
                break;
 
-       case DLM_MSG_CONVERT_REPLY:
-       case DLM_MSG_UNLOCK_REPLY:
-       case DLM_MSG_CANCEL_REPLY:
-       case DLM_MSG_GRANT:
-       case DLM_MSG_BAST:
+       case cpu_to_le32(DLM_MSG_CONVERT_REPLY):
+       case cpu_to_le32(DLM_MSG_UNLOCK_REPLY):
+       case cpu_to_le32(DLM_MSG_CANCEL_REPLY):
+       case cpu_to_le32(DLM_MSG_GRANT):
+       case cpu_to_le32(DLM_MSG_BAST):
                if (!is_process_copy(lkb) || lkb->lkb_nodeid != from)
                        error = -EINVAL;
                break;
 
-       case DLM_MSG_REQUEST_REPLY:
+       case cpu_to_le32(DLM_MSG_REQUEST_REPLY):
                if (!is_process_copy(lkb))
                        error = -EINVAL;
                else if (lkb->lkb_nodeid != -1 && lkb->lkb_nodeid != from)
        if (error)
                log_error(lkb->lkb_resource->res_ls,
                          "ignore invalid message %d from %d %x %x %x %d",
-                         ms->m_type, from, lkb->lkb_id, lkb->lkb_remid,
-                         lkb->lkb_flags, lkb->lkb_nodeid);
+                         le32_to_cpu(ms->m_type), from, lkb->lkb_id,
+                         lkb->lkb_remid, lkb->lkb_flags, lkb->lkb_nodeid);
        return error;
 }
 
                return;
 
        memcpy(ms->m_extra, name, len);
-       ms->m_hash = hash;
+       ms->m_hash = cpu_to_le32(hash);
 
        send_message(mh, ms);
 
 
        if (error != -ENOTBLK) {
                log_limit(ls, "receive_request %x from %d %d",
-                         ms->m_lkid, from_nodeid, error);
+                         le32_to_cpu(ms->m_lkid), from_nodeid, error);
        }
 
        if (namelen && error == -EBADR) {
        struct dlm_rsb *r;
        int error, reply = 1;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                goto fail;
 
-       if (lkb->lkb_remid != ms->m_lkid) {
+       if (lkb->lkb_remid != le32_to_cpu(ms->m_lkid)) {
                log_error(ls, "receive_convert %x remid %x recover_seq %llu "
                          "remote %d %x", lkb->lkb_id, lkb->lkb_remid,
                          (unsigned long long)lkb->lkb_recover_seq,
-                         le32_to_cpu(ms->m_header.h_nodeid), ms->m_lkid);
+                         le32_to_cpu(ms->m_header.h_nodeid),
+                         le32_to_cpu(ms->m_lkid));
                error = -ENOENT;
                dlm_put_lkb(lkb);
                goto fail;
        struct dlm_rsb *r;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                goto fail;
 
-       if (lkb->lkb_remid != ms->m_lkid) {
+       if (lkb->lkb_remid != le32_to_cpu(ms->m_lkid)) {
                log_error(ls, "receive_unlock %x remid %x remote %d %x",
                          lkb->lkb_id, lkb->lkb_remid,
-                         le32_to_cpu(ms->m_header.h_nodeid), ms->m_lkid);
+                         le32_to_cpu(ms->m_header.h_nodeid),
+                         le32_to_cpu(ms->m_lkid));
                error = -ENOENT;
                dlm_put_lkb(lkb);
                goto fail;
        struct dlm_rsb *r;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                goto fail;
 
        struct dlm_rsb *r;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                return error;
 
        struct dlm_rsb *r;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                return error;
 
        if (error)
                goto out;
 
-       queue_bast(r, lkb, ms->m_bastmode);
-       lkb->lkb_highbast = ms->m_bastmode;
+       queue_bast(r, lkb, le32_to_cpu(ms->m_bastmode));
+       lkb->lkb_highbast = le32_to_cpu(ms->m_bastmode);
  out:
        unlock_rsb(r);
        put_rsb(r);
                return;
        }
 
-       dir_nodeid = dlm_hash2nodeid(ls, ms->m_hash);
+       dir_nodeid = dlm_hash2nodeid(ls, le32_to_cpu(ms->m_hash));
        if (dir_nodeid != dlm_our_nodeid()) {
                log_error(ls, "receive_remove from %d bad nodeid %d",
                          from_nodeid, dir_nodeid);
 
 static void receive_purge(struct dlm_ls *ls, struct dlm_message *ms)
 {
-       do_purge(ls, ms->m_nodeid, ms->m_pid);
+       do_purge(ls, le32_to_cpu(ms->m_nodeid), le32_to_cpu(ms->m_pid));
 }
 
 static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms)
        int error, mstype, result;
        int from_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                return error;
 
        error = remove_from_waiters(lkb, DLM_MSG_REQUEST_REPLY);
        if (error) {
                log_error(ls, "receive_request_reply %x remote %d %x result %d",
-                         lkb->lkb_id, from_nodeid, ms->m_lkid, ms->m_result);
+                         lkb->lkb_id, from_nodeid, le32_to_cpu(ms->m_lkid),
+                         from_dlm_errno(le32_to_cpu(ms->m_result)));
                dlm_dump_rsb(r);
                goto out;
        }
        }
 
        /* this is the value returned from do_request() on the master */
-       result = ms->m_result;
+       result = from_dlm_errno(le32_to_cpu(ms->m_result));
 
        switch (result) {
        case -EAGAIN:
        case 0:
                /* request was queued or granted on remote master */
                receive_flags_reply(lkb, ms);
-               lkb->lkb_remid = ms->m_lkid;
+               lkb->lkb_remid = le32_to_cpu(ms->m_lkid);
                if (is_altmode(lkb))
                        munge_altmode(lkb, ms);
                if (result) {
                                    struct dlm_message *ms)
 {
        /* this is the value returned from do_convert() on the master */
-       switch (ms->m_result) {
+       switch (from_dlm_errno(le32_to_cpu(ms->m_result))) {
        case -EAGAIN:
                /* convert would block (be queued) on remote master */
                queue_cast(r, lkb, -EAGAIN);
        default:
                log_error(r->res_ls, "receive_convert_reply %x remote %d %x %d",
                          lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid),
-                         ms->m_lkid, ms->m_result);
+                         le32_to_cpu(ms->m_lkid),
+                         from_dlm_errno(le32_to_cpu(ms->m_result)));
                dlm_print_rsb(r);
                dlm_print_lkb(lkb);
        }
        struct dlm_lkb *lkb;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                return error;
 
 
        /* this is the value returned from do_unlock() on the master */
 
-       switch (ms->m_result) {
+       switch (from_dlm_errno(le32_to_cpu(ms->m_result))) {
        case -DLM_EUNLOCK:
                receive_flags_reply(lkb, ms);
                remove_lock_pc(r, lkb);
                break;
        default:
                log_error(r->res_ls, "receive_unlock_reply %x error %d",
-                         lkb->lkb_id, ms->m_result);
+                         lkb->lkb_id, from_dlm_errno(le32_to_cpu(ms->m_result)));
        }
  out:
        unlock_rsb(r);
        struct dlm_lkb *lkb;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                return error;
 
 
        /* this is the value returned from do_cancel() on the master */
 
-       switch (ms->m_result) {
+       switch (from_dlm_errno(le32_to_cpu(ms->m_result))) {
        case -DLM_ECANCEL:
                receive_flags_reply(lkb, ms);
                revert_lock_pc(r, lkb);
                break;
        default:
                log_error(r->res_ls, "receive_cancel_reply %x error %d",
-                         lkb->lkb_id, ms->m_result);
+                         lkb->lkb_id,
+                         from_dlm_errno(le32_to_cpu(ms->m_result)));
        }
  out:
        unlock_rsb(r);
        struct dlm_lkb *lkb;
        int error;
 
-       error = find_lkb(ls, ms->m_remid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_remid), &lkb);
        if (error)
                return error;
 
        int error, ret_nodeid;
        int do_lookup_list = 0;
 
-       error = find_lkb(ls, ms->m_lkid, &lkb);
+       error = find_lkb(ls, le32_to_cpu(ms->m_lkid), &lkb);
        if (error) {
-               log_error(ls, "receive_lookup_reply no lkid %x", ms->m_lkid);
+               log_error(ls, "%s no lkid %x", __func__,
+                         le32_to_cpu(ms->m_lkid));
                return;
        }
 
        if (error)
                goto out;
 
-       ret_nodeid = ms->m_nodeid;
+       ret_nodeid = le32_to_cpu(ms->m_nodeid);
 
        /* We sometimes receive a request from the dir node for this
           rsb before we've received the dir node's loookup_reply for it.
 
        if (!dlm_is_member(ls, le32_to_cpu(ms->m_header.h_nodeid))) {
                log_limit(ls, "receive %d from non-member %d %x %x %d",
-                         ms->m_type, le32_to_cpu(ms->m_header.h_nodeid),
-                         ms->m_lkid, ms->m_remid, ms->m_result);
+                         le32_to_cpu(ms->m_type),
+                         le32_to_cpu(ms->m_header.h_nodeid),
+                         le32_to_cpu(ms->m_lkid), le32_to_cpu(ms->m_remid),
+                         from_dlm_errno(le32_to_cpu(ms->m_result)));
                return;
        }
 
 
        /* messages sent to a master node */
 
-       case DLM_MSG_REQUEST:
+       case cpu_to_le32(DLM_MSG_REQUEST):
                error = receive_request(ls, ms);
                break;
 
-       case DLM_MSG_CONVERT:
+       case cpu_to_le32(DLM_MSG_CONVERT):
                error = receive_convert(ls, ms);
                break;
 
-       case DLM_MSG_UNLOCK:
+       case cpu_to_le32(DLM_MSG_UNLOCK):
                error = receive_unlock(ls, ms);
                break;
 
-       case DLM_MSG_CANCEL:
+       case cpu_to_le32(DLM_MSG_CANCEL):
                noent = 1;
                error = receive_cancel(ls, ms);
                break;
 
        /* messages sent from a master node (replies to above) */
 
-       case DLM_MSG_REQUEST_REPLY:
+       case cpu_to_le32(DLM_MSG_REQUEST_REPLY):
                error = receive_request_reply(ls, ms);
                break;
 
-       case DLM_MSG_CONVERT_REPLY:
+       case cpu_to_le32(DLM_MSG_CONVERT_REPLY):
                error = receive_convert_reply(ls, ms);
                break;
 
-       case DLM_MSG_UNLOCK_REPLY:
+       case cpu_to_le32(DLM_MSG_UNLOCK_REPLY):
                error = receive_unlock_reply(ls, ms);
                break;
 
-       case DLM_MSG_CANCEL_REPLY:
+       case cpu_to_le32(DLM_MSG_CANCEL_REPLY):
                error = receive_cancel_reply(ls, ms);
                break;
 
        /* messages sent from a master node (only two types of async msg) */
 
-       case DLM_MSG_GRANT:
+       case cpu_to_le32(DLM_MSG_GRANT):
                noent = 1;
                error = receive_grant(ls, ms);
                break;
 
-       case DLM_MSG_BAST:
+       case cpu_to_le32(DLM_MSG_BAST):
                noent = 1;
                error = receive_bast(ls, ms);
                break;
 
        /* messages sent to a dir node */
 
-       case DLM_MSG_LOOKUP:
+       case cpu_to_le32(DLM_MSG_LOOKUP):
                receive_lookup(ls, ms);
                break;
 
-       case DLM_MSG_REMOVE:
+       case cpu_to_le32(DLM_MSG_REMOVE):
                receive_remove(ls, ms);
                break;
 
        /* messages sent from a dir node (remove has no reply) */
 
-       case DLM_MSG_LOOKUP_REPLY:
+       case cpu_to_le32(DLM_MSG_LOOKUP_REPLY):
                receive_lookup_reply(ls, ms);
                break;
 
        /* other messages */
 
-       case DLM_MSG_PURGE:
+       case cpu_to_le32(DLM_MSG_PURGE):
                receive_purge(ls, ms);
                break;
 
        default:
-               log_error(ls, "unknown message type %d", ms->m_type);
+               log_error(ls, "unknown message type %d",
+                         le32_to_cpu(ms->m_type));
        }
 
        /*
 
        if (error == -ENOENT && noent) {
                log_debug(ls, "receive %d no %x remote %d %x saved_seq %u",
-                         ms->m_type, ms->m_remid,
+                         le32_to_cpu(ms->m_type), le32_to_cpu(ms->m_remid),
                          le32_to_cpu(ms->m_header.h_nodeid),
-                         ms->m_lkid, saved_seq);
+                         le32_to_cpu(ms->m_lkid), saved_seq);
        } else if (error == -ENOENT) {
                log_error(ls, "receive %d no %x remote %d %x saved_seq %u",
-                         ms->m_type, ms->m_remid,
+                         le32_to_cpu(ms->m_type), le32_to_cpu(ms->m_remid),
                          le32_to_cpu(ms->m_header.h_nodeid),
-                         ms->m_lkid, saved_seq);
+                         le32_to_cpu(ms->m_lkid), saved_seq);
 
-               if (ms->m_type == DLM_MSG_CONVERT)
-                       dlm_dump_rsb_hash(ls, ms->m_hash);
+               if (ms->m_type == cpu_to_le32(DLM_MSG_CONVERT))
+                       dlm_dump_rsb_hash(ls, le32_to_cpu(ms->m_hash));
        }
 
        if (error == -EINVAL) {
                log_error(ls, "receive %d inval from %d lkid %x remid %x "
                          "saved_seq %u",
-                         ms->m_type, le32_to_cpu(ms->m_header.h_nodeid),
-                         ms->m_lkid, ms->m_remid, saved_seq);
+                         le32_to_cpu(ms->m_type),
+                         le32_to_cpu(ms->m_header.h_nodeid),
+                         le32_to_cpu(ms->m_lkid), le32_to_cpu(ms->m_remid),
+                         saved_seq);
        }
 }
 
                   lockspace generation before we left. */
                if (!ls->ls_generation) {
                        log_limit(ls, "receive %d from %d ignore old gen",
-                                 ms->m_type, nodeid);
+                                 le32_to_cpu(ms->m_type), nodeid);
                        return;
                }
 
 
        switch (hd->h_cmd) {
        case DLM_MSG:
-               dlm_message_in(&p->message);
-               type = p->message.m_type;
+               type = le32_to_cpu(p->message.m_type);
                break;
        case DLM_RCOM:
                type = le32_to_cpu(p->rcom.rc_type);
        if (middle_conversion(lkb)) {
                hold_lkb(lkb);
                memset(ms_stub, 0, sizeof(struct dlm_message));
-               ms_stub->m_flags = DLM_IFL_STUB_MS;
-               ms_stub->m_type = DLM_MSG_CONVERT_REPLY;
-               ms_stub->m_result = -EINPROGRESS;
+               ms_stub->m_flags = cpu_to_le32(DLM_IFL_STUB_MS);
+               ms_stub->m_type = cpu_to_le32(DLM_MSG_CONVERT_REPLY);
+               ms_stub->m_result = cpu_to_le32(to_dlm_errno(-EINPROGRESS));
                ms_stub->m_header.h_nodeid = cpu_to_le32(lkb->lkb_nodeid);
                _receive_convert_reply(lkb, ms_stub);
 
                case DLM_MSG_UNLOCK:
                        hold_lkb(lkb);
                        memset(ms_stub, 0, sizeof(struct dlm_message));
-                       ms_stub->m_flags = DLM_IFL_STUB_MS;
-                       ms_stub->m_type = DLM_MSG_UNLOCK_REPLY;
-                       ms_stub->m_result = stub_unlock_result;
+                       ms_stub->m_flags = cpu_to_le32(DLM_IFL_STUB_MS);
+                       ms_stub->m_type = cpu_to_le32(DLM_MSG_UNLOCK_REPLY);
+                       ms_stub->m_result = cpu_to_le32(to_dlm_errno(stub_unlock_result));
                        ms_stub->m_header.h_nodeid = cpu_to_le32(lkb->lkb_nodeid);
                        _receive_unlock_reply(lkb, ms_stub);
                        dlm_put_lkb(lkb);
                case DLM_MSG_CANCEL:
                        hold_lkb(lkb);
                        memset(ms_stub, 0, sizeof(struct dlm_message));
-                       ms_stub->m_flags = DLM_IFL_STUB_MS;
-                       ms_stub->m_type = DLM_MSG_CANCEL_REPLY;
-                       ms_stub->m_result = stub_cancel_result;
+                       ms_stub->m_flags = cpu_to_le32(DLM_IFL_STUB_MS);
+                       ms_stub->m_type = cpu_to_le32(DLM_MSG_CANCEL_REPLY);
+                       ms_stub->m_result = cpu_to_le32(to_dlm_errno(stub_cancel_result));
                        ms_stub->m_header.h_nodeid = cpu_to_le32(lkb->lkb_nodeid);
                        _receive_cancel_reply(lkb, ms_stub);
                        dlm_put_lkb(lkb);
                                DLM_MSG_PURGE, &ms, &mh);
        if (error)
                return error;
-       ms->m_nodeid = nodeid;
-       ms->m_pid = pid;
+       ms->m_nodeid = cpu_to_le32(nodeid);
+       ms->m_pid = cpu_to_le32(pid);
 
        return send_message(mh, ms);
 }