Were not needed.
+++ /dev/null
-From b571587e408f188b6c54e08f99cba2642bc5c6df Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 4 Apr 2022 16:06:39 -0400
-Subject: dlm: use __le types for dlm header
-
-From: Alexander Aring <aahringo@redhat.com>
-
-[ Upstream commit 3428785a65dabf05bc899b6c5334984e98286184 ]
-
-This patch changes to use __le types directly in the dlm header
-structure which is casted at the right dlm message buffer positions.
-
-The main goal what is reached here is to remove sparse warnings
-regarding to host to little byte order conversion or vice versa. Leaving
-those sparse issues ignored and always do it in out/in functionality
-tends to leave it unknown in which byte order the variable is being
-handled.
-
-Signed-off-by: Alexander Aring <aahringo@redhat.com>
-Signed-off-by: David Teigland <teigland@redhat.com>
-Stable-dep-of: 7175e131ebba ("fs: dlm: fix invalid derefence of sb_lvbptr")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/dlm/dir.c | 2 +-
- fs/dlm/dlm_internal.h | 10 ++---
- fs/dlm/lock.c | 95 +++++++++++++++++++++++--------------------
- fs/dlm/member.c | 2 +-
- fs/dlm/midcomms.c | 26 +++++-------
- fs/dlm/rcom.c | 42 ++++++++++---------
- fs/dlm/requestqueue.c | 7 ++--
- fs/dlm/util.c | 26 ------------
- fs/dlm/util.h | 2 -
- 9 files changed, 97 insertions(+), 115 deletions(-)
-
-diff --git a/fs/dlm/dir.c b/fs/dlm/dir.c
-index 45ebbe602bbf..dd363c39c620 100644
---- a/fs/dlm/dir.c
-+++ b/fs/dlm/dir.c
-@@ -102,7 +102,7 @@ int dlm_recover_directory(struct dlm_ls *ls)
- */
-
- b = ls->ls_recover_buf->rc_buf;
-- left = ls->ls_recover_buf->rc_header.h_length;
-+ left = le16_to_cpu(ls->ls_recover_buf->rc_header.h_length);
- left -= sizeof(struct dlm_rcom);
-
- for (;;) {
-diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
-index 5f57538b5d45..c3cfe4be436a 100644
---- a/fs/dlm/dlm_internal.h
-+++ b/fs/dlm/dlm_internal.h
-@@ -385,15 +385,15 @@ static inline int rsb_flag(struct dlm_rsb *r, enum rsb_flags flag)
- #define DLM_FIN 5
-
- struct dlm_header {
-- uint32_t h_version;
-+ __le32 h_version;
- union {
- /* for DLM_MSG and DLM_RCOM */
-- uint32_t h_lockspace;
-+ __le32 h_lockspace;
- /* for DLM_ACK and DLM_OPTS */
-- uint32_t h_seq;
-+ __le32 h_seq;
- } u;
-- uint32_t h_nodeid; /* nodeid of sender */
-- uint16_t h_length;
-+ __le32 h_nodeid; /* nodeid of sender */
-+ __le16 h_length;
- uint8_t h_cmd; /* DLM_MSG, DLM_RCOM */
- uint8_t h_pad;
- };
-diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
-index bcc7127c4c0a..859412b7a82c 100644
---- a/fs/dlm/lock.c
-+++ b/fs/dlm/lock.c
-@@ -1564,8 +1564,8 @@ static int _remove_from_waiters(struct dlm_lkb *lkb, int mstype,
- }
-
- log_error(ls, "remwait error %x remote %d %x msg %d flags %x no wait",
-- lkb->lkb_id, ms ? ms->m_header.h_nodeid : 0, lkb->lkb_remid,
-- mstype, lkb->lkb_flags);
-+ lkb->lkb_id, ms ? le32_to_cpu(ms->m_header.h_nodeid) : 0,
-+ lkb->lkb_remid, mstype, lkb->lkb_flags);
- return -1;
-
- out_del:
-@@ -3545,10 +3545,10 @@ static int _create_message(struct dlm_ls *ls, int mb_len,
-
- ms = (struct dlm_message *) mb;
-
-- ms->m_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-- ms->m_header.u.h_lockspace = ls->ls_global_id;
-- ms->m_header.h_nodeid = dlm_our_nodeid();
-- ms->m_header.h_length = mb_len;
-+ ms->m_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-+ ms->m_header.u.h_lockspace = cpu_to_le32(ls->ls_global_id);
-+ ms->m_header.h_nodeid = cpu_to_le32(dlm_our_nodeid());
-+ ms->m_header.h_length = cpu_to_le16(mb_len);
- ms->m_header.h_cmd = DLM_MSG;
-
- ms->m_type = mstype;
-@@ -3842,7 +3842,7 @@ static int send_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms_in,
- struct dlm_rsb *r = &ls->ls_stub_rsb;
- struct dlm_message *ms;
- struct dlm_mhandle *mh;
-- int error, nodeid = ms_in->m_header.h_nodeid;
-+ int error, nodeid = le32_to_cpu(ms_in->m_header.h_nodeid);
-
- error = create_message(r, NULL, nodeid, DLM_MSG_LOOKUP_REPLY, &ms, &mh);
- if (error)
-@@ -3881,7 +3881,8 @@ static void receive_flags_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
-
- static int receive_extralen(struct dlm_message *ms)
- {
-- return (ms->m_header.h_length - sizeof(struct dlm_message));
-+ return (le16_to_cpu(ms->m_header.h_length) -
-+ sizeof(struct dlm_message));
- }
-
- static int receive_lvb(struct dlm_ls *ls, struct dlm_lkb *lkb,
-@@ -3915,7 +3916,7 @@ static void fake_astfn(void *astparam)
- static int receive_request_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
- struct dlm_message *ms)
- {
-- lkb->lkb_nodeid = ms->m_header.h_nodeid;
-+ 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_grmode = DLM_LOCK_IV;
-@@ -3963,7 +3964,7 @@ static int receive_unlock_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
- static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms)
- {
- struct dlm_lkb *lkb = &ls->ls_stub_lkb;
-- lkb->lkb_nodeid = ms->m_header.h_nodeid;
-+ lkb->lkb_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
- lkb->lkb_remid = ms->m_lkid;
- }
-
-@@ -3972,7 +3973,7 @@ static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms)
-
- static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
- {
-- int from = ms->m_header.h_nodeid;
-+ int from = le32_to_cpu(ms->m_header.h_nodeid);
- int error = 0;
-
- /* currently mixing of user/kernel locks are not supported */
-@@ -4086,7 +4087,7 @@ static int receive_request(struct dlm_ls *ls, struct dlm_message *ms)
- int from_nodeid;
- int error, namelen = 0;
-
-- from_nodeid = ms->m_header.h_nodeid;
-+ from_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
-
- error = create_lkb(ls, &lkb);
- if (error)
-@@ -4186,7 +4187,7 @@ static int receive_convert(struct dlm_ls *ls, struct dlm_message *ms)
- 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,
-- ms->m_header.h_nodeid, ms->m_lkid);
-+ le32_to_cpu(ms->m_header.h_nodeid), ms->m_lkid);
- error = -ENOENT;
- dlm_put_lkb(lkb);
- goto fail;
-@@ -4240,7 +4241,7 @@ static int receive_unlock(struct dlm_ls *ls, struct dlm_message *ms)
- if (lkb->lkb_remid != ms->m_lkid) {
- log_error(ls, "receive_unlock %x remid %x remote %d %x",
- lkb->lkb_id, lkb->lkb_remid,
-- ms->m_header.h_nodeid, ms->m_lkid);
-+ le32_to_cpu(ms->m_header.h_nodeid), ms->m_lkid);
- error = -ENOENT;
- dlm_put_lkb(lkb);
- goto fail;
-@@ -4377,7 +4378,7 @@ static void receive_lookup(struct dlm_ls *ls, struct dlm_message *ms)
- {
- int len, error, ret_nodeid, from_nodeid, our_nodeid;
-
-- from_nodeid = ms->m_header.h_nodeid;
-+ from_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
- our_nodeid = dlm_our_nodeid();
-
- len = receive_extralen(ms);
-@@ -4400,7 +4401,7 @@ static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms)
- uint32_t hash, b;
- int rv, len, dir_nodeid, from_nodeid;
-
-- from_nodeid = ms->m_header.h_nodeid;
-+ from_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
-
- len = receive_extralen(ms);
-
-@@ -4491,7 +4492,7 @@ static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms)
- struct dlm_lkb *lkb;
- struct dlm_rsb *r;
- int error, mstype, result;
-- int from_nodeid = ms->m_header.h_nodeid;
-+ int from_nodeid = le32_to_cpu(ms->m_header.h_nodeid);
-
- error = find_lkb(ls, ms->m_remid, &lkb);
- if (error)
-@@ -4643,8 +4644,8 @@ static void __receive_convert_reply(struct dlm_rsb *r, struct dlm_lkb *lkb,
-
- default:
- log_error(r->res_ls, "receive_convert_reply %x remote %d %x %d",
-- lkb->lkb_id, ms->m_header.h_nodeid, ms->m_lkid,
-- ms->m_result);
-+ lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid),
-+ ms->m_lkid, ms->m_result);
- dlm_print_rsb(r);
- dlm_print_lkb(lkb);
- }
-@@ -4823,8 +4824,8 @@ static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms)
- /* This should never happen */
- log_error(ls, "receive_lookup_reply %x from %d ret %d "
- "master %d dir %d our %d first %x %s",
-- lkb->lkb_id, ms->m_header.h_nodeid, ret_nodeid,
-- r->res_master_nodeid, r->res_dir_nodeid,
-+ lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid),
-+ ret_nodeid, r->res_master_nodeid, r->res_dir_nodeid,
- dlm_our_nodeid(), r->res_first_lkid, r->res_name);
- }
-
-@@ -4836,7 +4837,7 @@ static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms)
- } else if (ret_nodeid == -1) {
- /* the remote node doesn't believe it's the dir node */
- log_error(ls, "receive_lookup_reply %x from %d bad ret_nodeid",
-- lkb->lkb_id, ms->m_header.h_nodeid);
-+ lkb->lkb_id, le32_to_cpu(ms->m_header.h_nodeid));
- r->res_master_nodeid = 0;
- r->res_nodeid = -1;
- lkb->lkb_nodeid = -1;
-@@ -4870,10 +4871,10 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms,
- {
- int error = 0, noent = 0;
-
-- if (!dlm_is_member(ls, ms->m_header.h_nodeid)) {
-+ 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, ms->m_header.h_nodeid, ms->m_lkid,
-- ms->m_remid, ms->m_result);
-+ ms->m_type, le32_to_cpu(ms->m_header.h_nodeid),
-+ ms->m_lkid, ms->m_remid, ms->m_result);
- return;
- }
-
-@@ -4967,11 +4968,13 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms,
-
- if (error == -ENOENT && noent) {
- log_debug(ls, "receive %d no %x remote %d %x saved_seq %u",
-- ms->m_type, ms->m_remid, ms->m_header.h_nodeid,
-+ ms->m_type, ms->m_remid,
-+ le32_to_cpu(ms->m_header.h_nodeid),
- 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, ms->m_header.h_nodeid,
-+ ms->m_type, ms->m_remid,
-+ le32_to_cpu(ms->m_header.h_nodeid),
- ms->m_lkid, saved_seq);
-
- if (ms->m_type == DLM_MSG_CONVERT)
-@@ -4981,7 +4984,7 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms,
- if (error == -EINVAL) {
- log_error(ls, "receive %d inval from %d lkid %x remid %x "
- "saved_seq %u",
-- ms->m_type, ms->m_header.h_nodeid,
-+ ms->m_type, le32_to_cpu(ms->m_header.h_nodeid),
- ms->m_lkid, ms->m_remid, saved_seq);
- }
- }
-@@ -5048,18 +5051,20 @@ void dlm_receive_buffer(union dlm_packet *p, int nodeid)
- return;
- }
-
-- if (hd->h_nodeid != nodeid) {
-+ if (le32_to_cpu(hd->h_nodeid) != nodeid) {
- log_print("invalid h_nodeid %d from %d lockspace %x",
-- hd->h_nodeid, nodeid, hd->u.h_lockspace);
-+ le32_to_cpu(hd->h_nodeid), nodeid,
-+ le32_to_cpu(hd->u.h_lockspace));
- return;
- }
-
-- ls = dlm_find_lockspace_global(hd->u.h_lockspace);
-+ ls = dlm_find_lockspace_global(le32_to_cpu(hd->u.h_lockspace));
- if (!ls) {
- if (dlm_config.ci_log_debug) {
- printk_ratelimited(KERN_DEBUG "dlm: invalid lockspace "
- "%u from %d cmd %d type %d\n",
-- hd->u.h_lockspace, nodeid, hd->h_cmd, type);
-+ le32_to_cpu(hd->u.h_lockspace), nodeid,
-+ hd->h_cmd, type);
- }
-
- if (hd->h_cmd == DLM_RCOM && type == DLM_RCOM_STATUS)
-@@ -5089,7 +5094,7 @@ static void recover_convert_waiter(struct dlm_ls *ls, struct dlm_lkb *lkb,
- ms_stub->m_flags = DLM_IFL_STUB_MS;
- ms_stub->m_type = DLM_MSG_CONVERT_REPLY;
- ms_stub->m_result = -EINPROGRESS;
-- ms_stub->m_header.h_nodeid = lkb->lkb_nodeid;
-+ ms_stub->m_header.h_nodeid = cpu_to_le32(lkb->lkb_nodeid);
- _receive_convert_reply(lkb, ms_stub);
-
- /* Same special case as in receive_rcom_lock_args() */
-@@ -5211,7 +5216,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
- 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_header.h_nodeid = lkb->lkb_nodeid;
-+ ms_stub->m_header.h_nodeid = cpu_to_le32(lkb->lkb_nodeid);
- _receive_unlock_reply(lkb, ms_stub);
- dlm_put_lkb(lkb);
- break;
-@@ -5222,7 +5227,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
- 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_header.h_nodeid = lkb->lkb_nodeid;
-+ ms_stub->m_header.h_nodeid = cpu_to_le32(lkb->lkb_nodeid);
- _receive_cancel_reply(lkb, ms_stub);
- dlm_put_lkb(lkb);
- break;
-@@ -5592,7 +5597,7 @@ static int receive_rcom_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
- {
- struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf;
-
-- lkb->lkb_nodeid = rc->rc_header.h_nodeid;
-+ lkb->lkb_nodeid = le32_to_cpu(rc->rc_header.h_nodeid);
- lkb->lkb_ownpid = le32_to_cpu(rl->rl_ownpid);
- lkb->lkb_remid = le32_to_cpu(rl->rl_lkid);
- lkb->lkb_exflags = le32_to_cpu(rl->rl_exflags);
-@@ -5607,8 +5612,8 @@ static int receive_rcom_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
- lkb->lkb_astfn = (rl->rl_asts & DLM_CB_CAST) ? &fake_astfn : NULL;
-
- if (lkb->lkb_exflags & DLM_LKF_VALBLK) {
-- int lvblen = rc->rc_header.h_length - sizeof(struct dlm_rcom) -
-- sizeof(struct rcom_lock);
-+ int lvblen = le16_to_cpu(rc->rc_header.h_length) -
-+ sizeof(struct dlm_rcom) - sizeof(struct rcom_lock);
- if (lvblen > ls->ls_lvblen)
- return -EINVAL;
- lkb->lkb_lvbptr = dlm_allocate_lvb(ls);
-@@ -5644,7 +5649,7 @@ int dlm_recover_master_copy(struct dlm_ls *ls, struct dlm_rcom *rc)
- struct dlm_rsb *r;
- struct dlm_lkb *lkb;
- uint32_t remid = 0;
-- int from_nodeid = rc->rc_header.h_nodeid;
-+ int from_nodeid = le32_to_cpu(rc->rc_header.h_nodeid);
- int error;
-
- if (rl->rl_parent_lkid) {
-@@ -5734,7 +5739,8 @@ int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc)
- error = find_lkb(ls, lkid, &lkb);
- if (error) {
- log_error(ls, "dlm_recover_process_copy no %x remote %d %x %d",
-- lkid, rc->rc_header.h_nodeid, remid, result);
-+ lkid, le32_to_cpu(rc->rc_header.h_nodeid), remid,
-+ result);
- return error;
- }
-
-@@ -5744,7 +5750,8 @@ int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc)
-
- if (!is_process_copy(lkb)) {
- log_error(ls, "dlm_recover_process_copy bad %x remote %d %x %d",
-- lkid, rc->rc_header.h_nodeid, remid, result);
-+ lkid, le32_to_cpu(rc->rc_header.h_nodeid), remid,
-+ result);
- dlm_dump_rsb(r);
- unlock_rsb(r);
- put_rsb(r);
-@@ -5759,7 +5766,8 @@ int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc)
- a barrier between recover_masters and recover_locks. */
-
- log_debug(ls, "dlm_recover_process_copy %x remote %d %x %d",
-- lkid, rc->rc_header.h_nodeid, remid, result);
-+ lkid, le32_to_cpu(rc->rc_header.h_nodeid), remid,
-+ result);
-
- dlm_send_rcom_lock(r, lkb);
- goto out;
-@@ -5769,7 +5777,8 @@ int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc)
- break;
- default:
- log_error(ls, "dlm_recover_process_copy %x remote %d %x %d unk",
-- lkid, rc->rc_header.h_nodeid, remid, result);
-+ lkid, le32_to_cpu(rc->rc_header.h_nodeid), remid,
-+ result);
- }
-
- /* an ack for dlm_recover_locks() which waits for replies from
-diff --git a/fs/dlm/member.c b/fs/dlm/member.c
-index 731d489aa323..0dacddc63f55 100644
---- a/fs/dlm/member.c
-+++ b/fs/dlm/member.c
-@@ -20,7 +20,7 @@
-
- int dlm_slots_version(struct dlm_header *h)
- {
-- if ((h->h_version & 0x0000FFFF) < DLM_HEADER_SLOTS)
-+ if ((le32_to_cpu(h->h_version) & 0x0000FFFF) < DLM_HEADER_SLOTS)
- return 0;
- return 1;
- }
-diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c
-index 7ae39ec8d9b0..a9903cdb1438 100644
---- a/fs/dlm/midcomms.c
-+++ b/fs/dlm/midcomms.c
-@@ -373,13 +373,12 @@ static int dlm_send_ack(int nodeid, uint32_t seq)
-
- m_header = (struct dlm_header *)ppc;
-
-- m_header->h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-- m_header->h_nodeid = dlm_our_nodeid();
-- m_header->h_length = mb_len;
-+ m_header->h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-+ m_header->h_nodeid = cpu_to_le32(dlm_our_nodeid());
-+ m_header->h_length = cpu_to_le16(mb_len);
- m_header->h_cmd = DLM_ACK;
-- m_header->u.h_seq = seq;
-+ m_header->u.h_seq = cpu_to_le32(seq);
-
-- header_out(m_header);
- dlm_lowcomms_commit_msg(msg);
- dlm_lowcomms_put_msg(msg);
-
-@@ -402,13 +401,11 @@ static int dlm_send_fin(struct midcomms_node *node,
-
- m_header = (struct dlm_header *)ppc;
-
-- m_header->h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-- m_header->h_nodeid = dlm_our_nodeid();
-- m_header->h_length = mb_len;
-+ m_header->h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-+ m_header->h_nodeid = cpu_to_le32(dlm_our_nodeid());
-+ m_header->h_length = cpu_to_le16(mb_len);
- m_header->h_cmd = DLM_FIN;
-
-- header_out(m_header);
--
- pr_debug("sending fin msg to node %d\n", node->nodeid);
- dlm_midcomms_commit_mhandle(mh);
- set_bit(DLM_NODE_FLAG_STOP_TX, &node->flags);
-@@ -1013,11 +1010,10 @@ static void dlm_fill_opts_header(struct dlm_opts *opts, uint16_t inner_len,
- uint32_t seq)
- {
- opts->o_header.h_cmd = DLM_OPTS;
-- opts->o_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-- opts->o_header.h_nodeid = dlm_our_nodeid();
-- opts->o_header.h_length = DLM_MIDCOMMS_OPT_LEN + inner_len;
-- opts->o_header.u.h_seq = seq;
-- header_out(&opts->o_header);
-+ opts->o_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-+ opts->o_header.h_nodeid = cpu_to_le32(dlm_our_nodeid());
-+ opts->o_header.h_length = cpu_to_le16(DLM_MIDCOMMS_OPT_LEN + inner_len);
-+ opts->o_header.u.h_seq = cpu_to_le32(seq);
- }
-
- static void midcomms_new_msg_cb(struct dlm_mhandle *mh)
-diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c
-index 6cba86470278..b956b7e416c8 100644
---- a/fs/dlm/rcom.c
-+++ b/fs/dlm/rcom.c
-@@ -34,10 +34,10 @@ static void _create_rcom(struct dlm_ls *ls, int to_nodeid, int type, int len,
-
- rc = (struct dlm_rcom *) mb;
-
-- rc->rc_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-- rc->rc_header.u.h_lockspace = ls->ls_global_id;
-- rc->rc_header.h_nodeid = dlm_our_nodeid();
-- rc->rc_header.h_length = mb_len;
-+ rc->rc_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-+ rc->rc_header.u.h_lockspace = cpu_to_le32(ls->ls_global_id);
-+ rc->rc_header.h_nodeid = cpu_to_le32(dlm_our_nodeid());
-+ rc->rc_header.h_length = cpu_to_le16(mb_len);
- rc->rc_header.h_cmd = DLM_RCOM;
-
- rc->rc_type = type;
-@@ -127,10 +127,10 @@ static int check_rcom_config(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- {
- struct rcom_config *rf = (struct rcom_config *) rc->rc_buf;
-
-- if ((rc->rc_header.h_version & 0xFFFF0000) != DLM_HEADER_MAJOR) {
-+ if ((le32_to_cpu(rc->rc_header.h_version) & 0xFFFF0000) != DLM_HEADER_MAJOR) {
- log_error(ls, "version mismatch: %x nodeid %d: %x",
- DLM_HEADER_MAJOR | DLM_HEADER_MINOR, nodeid,
-- rc->rc_header.h_version);
-+ le32_to_cpu(rc->rc_header.h_version));
- return -EPROTO;
- }
-
-@@ -227,7 +227,7 @@ static void receive_rcom_status(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- struct dlm_rcom *rc;
- struct rcom_status *rs;
- uint32_t status;
-- int nodeid = rc_in->rc_header.h_nodeid;
-+ int nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid);
- int len = sizeof(struct rcom_config);
- struct dlm_msg *msg;
- int num_slots = 0;
-@@ -289,12 +289,14 @@ static void receive_sync_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- if (!test_bit(LSFL_RCOM_WAIT, &ls->ls_flags) ||
- rc_in->rc_id != ls->ls_rcom_seq) {
- log_debug(ls, "reject reply %d from %d seq %llx expect %llx",
-- rc_in->rc_type, rc_in->rc_header.h_nodeid,
-+ rc_in->rc_type,
-+ le32_to_cpu(rc_in->rc_header.h_nodeid),
- (unsigned long long)rc_in->rc_id,
- (unsigned long long)ls->ls_rcom_seq);
- goto out;
- }
-- memcpy(ls->ls_recover_buf, rc_in, rc_in->rc_header.h_length);
-+ memcpy(ls->ls_recover_buf, rc_in,
-+ le16_to_cpu(rc_in->rc_header.h_length));
- set_bit(LSFL_RCOM_READY, &ls->ls_flags);
- clear_bit(LSFL_RCOM_WAIT, &ls->ls_flags);
- wake_up(&ls->ls_wait_general);
-@@ -336,8 +338,9 @@ static void receive_rcom_names(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- int error, inlen, outlen, nodeid;
- struct dlm_msg *msg;
-
-- nodeid = rc_in->rc_header.h_nodeid;
-- inlen = rc_in->rc_header.h_length - sizeof(struct dlm_rcom);
-+ nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid);
-+ inlen = le16_to_cpu(rc_in->rc_header.h_length) -
-+ sizeof(struct dlm_rcom);
- outlen = DLM_MAX_APP_BUFSIZE - sizeof(struct dlm_rcom);
-
- error = create_rcom_stateless(ls, nodeid, DLM_RCOM_NAMES_REPLY, outlen,
-@@ -375,8 +378,9 @@ static void receive_rcom_lookup(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- {
- struct dlm_rcom *rc;
- struct dlm_mhandle *mh;
-- int error, ret_nodeid, nodeid = rc_in->rc_header.h_nodeid;
-- int len = rc_in->rc_header.h_length - sizeof(struct dlm_rcom);
-+ int error, ret_nodeid, nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid);
-+ int len = le16_to_cpu(rc_in->rc_header.h_length) -
-+ sizeof(struct dlm_rcom);
-
- /* Old code would send this special id to trigger a debug dump. */
- if (rc_in->rc_id == 0xFFFFFFFF) {
-@@ -464,7 +468,7 @@ static void receive_rcom_lock(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- {
- struct dlm_rcom *rc;
- struct dlm_mhandle *mh;
-- int error, nodeid = rc_in->rc_header.h_nodeid;
-+ int error, nodeid = le32_to_cpu(rc_in->rc_header.h_nodeid);
-
- dlm_recover_master_copy(ls, rc_in);
-
-@@ -500,10 +504,10 @@ int dlm_send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in)
-
- rc = (struct dlm_rcom *) mb;
-
-- rc->rc_header.h_version = (DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
-+ rc->rc_header.h_version = cpu_to_le32(DLM_HEADER_MAJOR | DLM_HEADER_MINOR);
- rc->rc_header.u.h_lockspace = rc_in->rc_header.u.h_lockspace;
-- rc->rc_header.h_nodeid = dlm_our_nodeid();
-- rc->rc_header.h_length = mb_len;
-+ rc->rc_header.h_nodeid = cpu_to_le32(dlm_our_nodeid());
-+ rc->rc_header.h_length = cpu_to_le16(mb_len);
- rc->rc_header.h_cmd = DLM_RCOM;
-
- rc->rc_type = DLM_RCOM_STATUS_REPLY;
-@@ -631,7 +635,7 @@ void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- break;
-
- case DLM_RCOM_LOCK:
-- if (rc->rc_header.h_length < lock_size)
-+ if (le16_to_cpu(rc->rc_header.h_length) < lock_size)
- goto Eshort;
- receive_rcom_lock(ls, rc);
- break;
-@@ -649,7 +653,7 @@ void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- break;
-
- case DLM_RCOM_LOCK_REPLY:
-- if (rc->rc_header.h_length < lock_size)
-+ if (le16_to_cpu(rc->rc_header.h_length) < lock_size)
- goto Eshort;
- dlm_recover_process_copy(ls, rc);
- break;
-diff --git a/fs/dlm/requestqueue.c b/fs/dlm/requestqueue.c
-index e89e0ff8bfa3..3692fbd218d5 100644
---- a/fs/dlm/requestqueue.c
-+++ b/fs/dlm/requestqueue.c
-@@ -32,7 +32,8 @@ struct rq_entry {
- void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms)
- {
- struct rq_entry *e;
-- int length = ms->m_header.h_length - sizeof(struct dlm_message);
-+ int length = le16_to_cpu(ms->m_header.h_length) -
-+ sizeof(struct dlm_message);
-
- e = kmalloc(sizeof(struct rq_entry) + length, GFP_NOFS);
- if (!e) {
-@@ -42,7 +43,7 @@ void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms)
-
- e->recover_seq = ls->ls_recover_seq & 0xFFFFFFFF;
- e->nodeid = nodeid;
-- memcpy(&e->request, ms, ms->m_header.h_length);
-+ memcpy(&e->request, ms, le16_to_cpu(ms->m_header.h_length));
-
- mutex_lock(&ls->ls_requestqueue_mutex);
- list_add_tail(&e->list, &ls->ls_requestqueue);
-@@ -81,7 +82,7 @@ int dlm_process_requestqueue(struct dlm_ls *ls)
-
- log_limit(ls, "dlm_process_requestqueue msg %d from %d "
- "lkid %x remid %x result %d seq %u",
-- ms->m_type, ms->m_header.h_nodeid,
-+ ms->m_type, le32_to_cpu(ms->m_header.h_nodeid),
- ms->m_lkid, ms->m_remid, ms->m_result,
- e->recover_seq);
-
-diff --git a/fs/dlm/util.c b/fs/dlm/util.c
-index 58acbcc2081a..66b9a123768d 100644
---- a/fs/dlm/util.c
-+++ b/fs/dlm/util.c
-@@ -20,24 +20,6 @@
- #define DLM_ERRNO_ETIMEDOUT 110
- #define DLM_ERRNO_EINPROGRESS 115
-
--void header_out(struct dlm_header *hd)
--{
-- hd->h_version = cpu_to_le32(hd->h_version);
-- /* does it for others u32 in union as well */
-- hd->u.h_lockspace = cpu_to_le32(hd->u.h_lockspace);
-- hd->h_nodeid = cpu_to_le32(hd->h_nodeid);
-- hd->h_length = cpu_to_le16(hd->h_length);
--}
--
--void header_in(struct dlm_header *hd)
--{
-- hd->h_version = le32_to_cpu(hd->h_version);
-- /* does it for others u32 in union as well */
-- hd->u.h_lockspace = le32_to_cpu(hd->u.h_lockspace);
-- hd->h_nodeid = le32_to_cpu(hd->h_nodeid);
-- hd->h_length = le16_to_cpu(hd->h_length);
--}
--
- /* higher errno values are inconsistent across architectures, so select
- one set of values for on the wire */
-
-@@ -85,8 +67,6 @@ static int from_dlm_errno(int err)
-
- void dlm_message_out(struct dlm_message *ms)
- {
-- header_out(&ms->m_header);
--
- ms->m_type = cpu_to_le32(ms->m_type);
- ms->m_nodeid = cpu_to_le32(ms->m_nodeid);
- ms->m_pid = cpu_to_le32(ms->m_pid);
-@@ -109,8 +89,6 @@ void dlm_message_out(struct dlm_message *ms)
-
- void dlm_message_in(struct dlm_message *ms)
- {
-- header_in(&ms->m_header);
--
- ms->m_type = le32_to_cpu(ms->m_type);
- ms->m_nodeid = le32_to_cpu(ms->m_nodeid);
- ms->m_pid = le32_to_cpu(ms->m_pid);
-@@ -133,8 +111,6 @@ void dlm_message_in(struct dlm_message *ms)
-
- void dlm_rcom_out(struct dlm_rcom *rc)
- {
-- header_out(&rc->rc_header);
--
- rc->rc_type = cpu_to_le32(rc->rc_type);
- rc->rc_result = cpu_to_le32(rc->rc_result);
- rc->rc_id = cpu_to_le64(rc->rc_id);
-@@ -144,8 +120,6 @@ void dlm_rcom_out(struct dlm_rcom *rc)
-
- void dlm_rcom_in(struct dlm_rcom *rc)
- {
-- header_in(&rc->rc_header);
--
- rc->rc_type = le32_to_cpu(rc->rc_type);
- rc->rc_result = le32_to_cpu(rc->rc_result);
- rc->rc_id = le64_to_cpu(rc->rc_id);
-diff --git a/fs/dlm/util.h b/fs/dlm/util.h
-index d46f23c7a6a0..cc719ca9397e 100644
---- a/fs/dlm/util.h
-+++ b/fs/dlm/util.h
-@@ -15,8 +15,6 @@ void dlm_message_out(struct dlm_message *ms);
- void dlm_message_in(struct dlm_message *ms);
- void dlm_rcom_out(struct dlm_rcom *rc);
- void dlm_rcom_in(struct dlm_rcom *rc);
--void header_out(struct dlm_header *hd);
--void header_in(struct dlm_header *hd);
-
- #endif
-
---
-2.35.1
-
+++ /dev/null
-From b59651cc695c5aaaf09223589e7516043843182d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 4 Apr 2022 16:06:41 -0400
-Subject: dlm: use __le types for dlm messages
-
-From: Alexander Aring <aahringo@redhat.com>
-
-[ Upstream commit 00e99ccde75722599faf089416341bfed7e4edb5 ]
-
-This patch changes to use __le types directly in the dlm message
-structure which is casted at the right dlm message buffer positions.
-
-The main goal what is reached here is to remove sparse warnings
-regarding to host to little byte order conversion or vice versa. Leaving
-those sparse issues ignored and always do it in out/in functionality
-tends to leave it unknown in which byte order the variable is being
-handled.
-
-Signed-off-by: Alexander Aring <aahringo@redhat.com>
-Signed-off-by: David Teigland <teigland@redhat.com>
-Stable-dep-of: 7175e131ebba ("fs: dlm: fix invalid derefence of sb_lvbptr")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/dlm/dlm_internal.h | 36 +++---
- fs/dlm/lock.c | 276 ++++++++++++++++++++++--------------------
- fs/dlm/requestqueue.c | 15 ++-
- fs/dlm/util.c | 48 +-------
- fs/dlm/util.h | 4 +-
- 5 files changed, 174 insertions(+), 205 deletions(-)
-
-diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
-index 78704fa31a74..aa5ed57ab1ba 100644
---- a/fs/dlm/dlm_internal.h
-+++ b/fs/dlm/dlm_internal.h
-@@ -415,24 +415,24 @@ struct dlm_header {
-
- struct dlm_message {
- struct dlm_header m_header;
-- uint32_t m_type; /* DLM_MSG_ */
-- uint32_t m_nodeid;
-- uint32_t m_pid;
-- uint32_t m_lkid; /* lkid on sender */
-- uint32_t m_remid; /* lkid on receiver */
-- uint32_t m_parent_lkid;
-- uint32_t m_parent_remid;
-- uint32_t m_exflags;
-- uint32_t m_sbflags;
-- uint32_t m_flags;
-- uint32_t m_lvbseq;
-- uint32_t m_hash;
-- int m_status;
-- int m_grmode;
-- int m_rqmode;
-- int m_bastmode;
-- int m_asts;
-- int m_result; /* 0 or -EXXX */
-+ __le32 m_type; /* DLM_MSG_ */
-+ __le32 m_nodeid;
-+ __le32 m_pid;
-+ __le32 m_lkid; /* lkid on sender */
-+ __le32 m_remid; /* lkid on receiver */
-+ __le32 m_parent_lkid;
-+ __le32 m_parent_remid;
-+ __le32 m_exflags;
-+ __le32 m_sbflags;
-+ __le32 m_flags;
-+ __le32 m_lvbseq;
-+ __le32 m_hash;
-+ __le32 m_status;
-+ __le32 m_grmode;
-+ __le32 m_rqmode;
-+ __le32 m_bastmode;
-+ __le32 m_asts;
-+ __le32 m_result; /* 0 or -EXXX */
- char m_extra[]; /* name or lvb */
- };
-
-diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
-index fea9a7216297..a6a5fbe36ca9 100644
---- a/fs/dlm/lock.c
-+++ b/fs/dlm/lock.c
-@@ -1611,10 +1611,10 @@ static int remove_from_waiters_ms(struct dlm_lkb *lkb, struct dlm_message *ms)
- 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;
- }
-@@ -2041,7 +2041,7 @@ static void set_lvb_lock_pc(struct dlm_rsb *r, struct dlm_lkb *lkb,
- 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);
- }
- }
-
-@@ -2172,10 +2172,10 @@ static void munge_demoted(struct dlm_lkb *lkb)
-
- 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;
- }
-
-@@ -3551,7 +3551,7 @@ static int _create_message(struct dlm_ls *ls, int mb_len,
- 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;
-@@ -3590,7 +3590,6 @@ static int create_message(struct dlm_rsb *r, struct dlm_lkb *lkb,
-
- static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms)
- {
-- dlm_message_out(ms);
- dlm_midcomms_commit_mhandle(mh);
- return 0;
- }
-@@ -3598,40 +3597,40 @@ static int send_message(struct dlm_mhandle *mh, struct dlm_message *ms)
- 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);
-@@ -3681,8 +3680,8 @@ static int send_convert(struct dlm_rsb *r, struct dlm_lkb *lkb)
- /* 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);
- }
-@@ -3739,7 +3738,7 @@ static int send_bast(struct dlm_rsb *r, struct dlm_lkb *lkb, int mode)
-
- send_args(r, lkb, ms);
-
-- ms->m_bastmode = mode;
-+ ms->m_bastmode = cpu_to_le32(mode);
-
- error = send_message(mh, ms);
- out:
-@@ -3787,7 +3786,7 @@ static int send_remove(struct dlm_rsb *r)
- 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:
-@@ -3809,7 +3808,7 @@ static int send_common_reply(struct dlm_rsb *r, struct dlm_lkb *lkb,
-
- 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:
-@@ -3849,8 +3848,8 @@ static int send_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms_in,
- 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:
-@@ -3863,20 +3862,20 @@ static int send_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms_in,
-
- 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)
-@@ -3917,13 +3916,13 @@ static int receive_request_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
- 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 */
-@@ -3944,8 +3943,8 @@ static int receive_convert_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
- 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;
- }
-@@ -3965,7 +3964,7 @@ static void setup_stub_lkb(struct dlm_ls *ls, struct dlm_message *ms)
- {
- 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
-@@ -3977,7 +3976,8 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
- 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;
-@@ -3985,23 +3985,23 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
- }
-
- 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)
-@@ -4016,8 +4016,8 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
- 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;
- }
-
-@@ -4069,7 +4069,7 @@ static void send_repeat_remove(struct dlm_ls *ls, char *ms_name, int len)
- goto out;
-
- memcpy(ms->m_extra, name, len);
-- ms->m_hash = hash;
-+ ms->m_hash = cpu_to_le32(hash);
-
- send_message(mh, ms);
-
-@@ -4160,7 +4160,7 @@ static int receive_request(struct dlm_ls *ls, struct dlm_message *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) {
-@@ -4179,15 +4179,16 @@ static int receive_convert(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-@@ -4234,14 +4235,15 @@ static int receive_unlock(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-@@ -4285,7 +4287,7 @@ static int receive_cancel(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-
-@@ -4321,7 +4323,7 @@ static int receive_grant(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-
-@@ -4352,7 +4354,7 @@ static int receive_bast(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-
-@@ -4365,8 +4367,8 @@ static int receive_bast(struct dlm_ls *ls, struct dlm_message *ms)
- 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);
-@@ -4411,7 +4413,7 @@ static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms)
- 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);
-@@ -4484,7 +4486,7 @@ static void receive_remove(struct dlm_ls *ls, struct dlm_message *ms)
-
- 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)
-@@ -4494,7 +4496,7 @@ 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;
-
-@@ -4510,7 +4512,8 @@ static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
- }
-@@ -4524,7 +4527,7 @@ static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms)
- }
-
- /* 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:
-@@ -4538,7 +4541,7 @@ static int receive_request_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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) {
-@@ -4611,7 +4614,7 @@ static void __receive_convert_reply(struct dlm_rsb *r, struct dlm_lkb *lkb,
- 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);
-@@ -4645,7 +4648,8 @@ static void __receive_convert_reply(struct dlm_rsb *r, struct dlm_lkb *lkb,
- 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);
- }
-@@ -4679,7 +4683,7 @@ static int receive_convert_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-
-@@ -4707,7 +4711,7 @@ static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
-
- /* 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);
-@@ -4717,7 +4721,7 @@ static void _receive_unlock_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
- 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);
-@@ -4729,7 +4733,7 @@ static int receive_unlock_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-
-@@ -4757,7 +4761,7 @@ static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
-
- /* 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);
-@@ -4767,7 +4771,8 @@ static void _receive_cancel_reply(struct dlm_lkb *lkb, struct dlm_message *ms)
- 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);
-@@ -4779,7 +4784,7 @@ static int receive_cancel_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
-
-@@ -4795,9 +4800,10 @@ static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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;
- }
-
-@@ -4812,7 +4818,7 @@ static void receive_lookup_reply(struct dlm_ls *ls, struct dlm_message *ms)
- 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.
-@@ -4873,8 +4879,10 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms,
-
- 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;
- }
-
-@@ -4882,77 +4890,78 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms,
-
- /* 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));
- }
-
- /*
-@@ -4968,24 +4977,26 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms,
-
- 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);
- }
- }
-
-@@ -5006,7 +5017,7 @@ static void dlm_receive_message(struct dlm_ls *ls, struct dlm_message *ms,
- 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;
- }
-
-@@ -5039,8 +5050,7 @@ void dlm_receive_buffer(union dlm_packet *p, int nodeid)
-
- 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);
-@@ -5090,9 +5100,9 @@ static void recover_convert_waiter(struct dlm_ls *ls, struct dlm_lkb *lkb,
- 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);
-
-@@ -5212,9 +5222,9 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
- 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);
-@@ -5223,9 +5233,9 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
- 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);
-@@ -6302,8 +6312,8 @@ static int send_purge(struct dlm_ls *ls, int nodeid, int pid)
- 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);
- }
-diff --git a/fs/dlm/requestqueue.c b/fs/dlm/requestqueue.c
-index 3692fbd218d5..ad27d2642c82 100644
---- a/fs/dlm/requestqueue.c
-+++ b/fs/dlm/requestqueue.c
-@@ -14,6 +14,7 @@
- #include "dir.h"
- #include "config.h"
- #include "requestqueue.h"
-+#include "util.h"
-
- struct rq_entry {
- struct list_head list;
-@@ -82,8 +83,10 @@ int dlm_process_requestqueue(struct dlm_ls *ls)
-
- log_limit(ls, "dlm_process_requestqueue msg %d from %d "
- "lkid %x remid %x result %d seq %u",
-- 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)),
- e->recover_seq);
-
- dlm_receive_message_saved(ls, &e->request, e->recover_seq);
-@@ -128,7 +131,7 @@ void dlm_wait_requestqueue(struct dlm_ls *ls)
-
- static int purge_request(struct dlm_ls *ls, struct dlm_message *ms, int nodeid)
- {
-- uint32_t type = ms->m_type;
-+ __le32 type = ms->m_type;
-
- /* the ls is being cleaned up and freed by release_lockspace */
- if (!ls->ls_count)
-@@ -140,9 +143,9 @@ static int purge_request(struct dlm_ls *ls, struct dlm_message *ms, int nodeid)
- /* directory operations are always purged because the directory is
- always rebuilt during recovery and the lookups resent */
-
-- if (type == DLM_MSG_REMOVE ||
-- type == DLM_MSG_LOOKUP ||
-- type == DLM_MSG_LOOKUP_REPLY)
-+ if (type == cpu_to_le32(DLM_MSG_REMOVE) ||
-+ type == cpu_to_le32(DLM_MSG_LOOKUP) ||
-+ type == cpu_to_le32(DLM_MSG_LOOKUP_REPLY))
- return 1;
-
- if (!dlm_no_directory(ls))
-diff --git a/fs/dlm/util.c b/fs/dlm/util.c
-index 657dbed1bd60..f2bc401f312f 100644
---- a/fs/dlm/util.c
-+++ b/fs/dlm/util.c
-@@ -23,7 +23,7 @@
- /* higher errno values are inconsistent across architectures, so select
- one set of values for on the wire */
-
--static int to_dlm_errno(int err)
-+int to_dlm_errno(int err)
- {
- switch (err) {
- case -EDEADLK:
-@@ -44,7 +44,7 @@ static int to_dlm_errno(int err)
- return err;
- }
-
--static int from_dlm_errno(int err)
-+int from_dlm_errno(int err)
- {
- switch (err) {
- case -DLM_ERRNO_EDEADLK:
-@@ -64,47 +64,3 @@ static int from_dlm_errno(int err)
- }
- return err;
- }
--
--void dlm_message_out(struct dlm_message *ms)
--{
-- ms->m_type = cpu_to_le32(ms->m_type);
-- ms->m_nodeid = cpu_to_le32(ms->m_nodeid);
-- ms->m_pid = cpu_to_le32(ms->m_pid);
-- ms->m_lkid = cpu_to_le32(ms->m_lkid);
-- ms->m_remid = cpu_to_le32(ms->m_remid);
-- ms->m_parent_lkid = cpu_to_le32(ms->m_parent_lkid);
-- ms->m_parent_remid = cpu_to_le32(ms->m_parent_remid);
-- ms->m_exflags = cpu_to_le32(ms->m_exflags);
-- ms->m_sbflags = cpu_to_le32(ms->m_sbflags);
-- ms->m_flags = cpu_to_le32(ms->m_flags);
-- ms->m_lvbseq = cpu_to_le32(ms->m_lvbseq);
-- ms->m_hash = cpu_to_le32(ms->m_hash);
-- ms->m_status = cpu_to_le32(ms->m_status);
-- ms->m_grmode = cpu_to_le32(ms->m_grmode);
-- ms->m_rqmode = cpu_to_le32(ms->m_rqmode);
-- ms->m_bastmode = cpu_to_le32(ms->m_bastmode);
-- ms->m_asts = cpu_to_le32(ms->m_asts);
-- ms->m_result = cpu_to_le32(to_dlm_errno(ms->m_result));
--}
--
--void dlm_message_in(struct dlm_message *ms)
--{
-- ms->m_type = le32_to_cpu(ms->m_type);
-- ms->m_nodeid = le32_to_cpu(ms->m_nodeid);
-- ms->m_pid = le32_to_cpu(ms->m_pid);
-- ms->m_lkid = le32_to_cpu(ms->m_lkid);
-- ms->m_remid = le32_to_cpu(ms->m_remid);
-- ms->m_parent_lkid = le32_to_cpu(ms->m_parent_lkid);
-- ms->m_parent_remid = le32_to_cpu(ms->m_parent_remid);
-- ms->m_exflags = le32_to_cpu(ms->m_exflags);
-- ms->m_sbflags = le32_to_cpu(ms->m_sbflags);
-- ms->m_flags = le32_to_cpu(ms->m_flags);
-- ms->m_lvbseq = le32_to_cpu(ms->m_lvbseq);
-- ms->m_hash = le32_to_cpu(ms->m_hash);
-- ms->m_status = le32_to_cpu(ms->m_status);
-- ms->m_grmode = le32_to_cpu(ms->m_grmode);
-- ms->m_rqmode = le32_to_cpu(ms->m_rqmode);
-- ms->m_bastmode = le32_to_cpu(ms->m_bastmode);
-- ms->m_asts = le32_to_cpu(ms->m_asts);
-- ms->m_result = from_dlm_errno(le32_to_cpu(ms->m_result));
--}
-diff --git a/fs/dlm/util.h b/fs/dlm/util.h
-index cd099c4f5d6a..b6a4b8adca8d 100644
---- a/fs/dlm/util.h
-+++ b/fs/dlm/util.h
-@@ -11,8 +11,8 @@
- #ifndef __UTIL_DOT_H__
- #define __UTIL_DOT_H__
-
--void dlm_message_out(struct dlm_message *ms);
--void dlm_message_in(struct dlm_message *ms);
-+int to_dlm_errno(int err);
-+int from_dlm_errno(int err);
-
- #endif
-
---
-2.35.1
-
+++ /dev/null
-From b8f2c1902d3baf578d94e7003f691dbcefef4916 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 4 Apr 2022 16:06:40 -0400
-Subject: dlm: use __le types for rcom messages
-
-From: Alexander Aring <aahringo@redhat.com>
-
-[ Upstream commit 2f9dbeda8dc04b5b754e032000adf6bab03aa9be ]
-
-This patch changes to use __le types directly in the dlm rcom
-structure which is casted at the right dlm message buffer positions.
-
-The main goal what is reached here is to remove sparse warnings
-regarding to host to little byte order conversion or vice versa. Leaving
-those sparse issues ignored and always do it in out/in functionality
-tends to leave it unknown in which byte order the variable is being
-handled.
-
-Signed-off-by: Alexander Aring <aahringo@redhat.com>
-Signed-off-by: David Teigland <teigland@redhat.com>
-Stable-dep-of: 7175e131ebba ("fs: dlm: fix invalid derefence of sb_lvbptr")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/dlm/dlm_internal.h | 10 +++---
- fs/dlm/lock.c | 3 +-
- fs/dlm/member.c | 9 ++---
- fs/dlm/rcom.c | 80 +++++++++++++++++++++----------------------
- fs/dlm/recover.c | 10 +++---
- fs/dlm/util.c | 18 ----------
- fs/dlm/util.h | 2 --
- 7 files changed, 52 insertions(+), 80 deletions(-)
-
-diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
-index c3cfe4be436a..78704fa31a74 100644
---- a/fs/dlm/dlm_internal.h
-+++ b/fs/dlm/dlm_internal.h
-@@ -457,11 +457,11 @@ struct dlm_message {
-
- struct dlm_rcom {
- struct dlm_header rc_header;
-- uint32_t rc_type; /* DLM_RCOM_ */
-- int rc_result; /* multi-purpose */
-- uint64_t rc_id; /* match reply with request */
-- uint64_t rc_seq; /* sender's ls_recover_seq */
-- uint64_t rc_seq_reply; /* remote ls_recover_seq */
-+ __le32 rc_type; /* DLM_RCOM_ */
-+ __le32 rc_result; /* multi-purpose */
-+ __le64 rc_id; /* match reply with request */
-+ __le64 rc_seq; /* sender's ls_recover_seq */
-+ __le64 rc_seq_reply; /* remote ls_recover_seq */
- char rc_buf[];
- };
-
-diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
-index 859412b7a82c..fea9a7216297 100644
---- a/fs/dlm/lock.c
-+++ b/fs/dlm/lock.c
-@@ -5043,8 +5043,7 @@ void dlm_receive_buffer(union dlm_packet *p, int nodeid)
- type = p->message.m_type;
- break;
- case DLM_RCOM:
-- dlm_rcom_in(&p->rcom);
-- type = p->rcom.rc_type;
-+ type = le32_to_cpu(p->rcom.rc_type);
- break;
- default:
- log_print("invalid h_cmd %d from %u", hd->h_cmd, nodeid);
-diff --git a/fs/dlm/member.c b/fs/dlm/member.c
-index 0dacddc63f55..a6ff21430863 100644
---- a/fs/dlm/member.c
-+++ b/fs/dlm/member.c
-@@ -120,18 +120,13 @@ int dlm_slots_copy_in(struct dlm_ls *ls)
-
- ro0 = (struct rcom_slot *)(rc->rc_buf + sizeof(struct rcom_config));
-
-- for (i = 0, ro = ro0; i < num_slots; i++, ro++) {
-- ro->ro_nodeid = le32_to_cpu(ro->ro_nodeid);
-- ro->ro_slot = le16_to_cpu(ro->ro_slot);
-- }
--
- log_slots(ls, gen, num_slots, ro0, NULL, 0);
-
- list_for_each_entry(memb, &ls->ls_nodes, list) {
- for (i = 0, ro = ro0; i < num_slots; i++, ro++) {
-- if (ro->ro_nodeid != memb->nodeid)
-+ if (le32_to_cpu(ro->ro_nodeid) != memb->nodeid)
- continue;
-- memb->slot = ro->ro_slot;
-+ memb->slot = le16_to_cpu(ro->ro_slot);
- memb->slot_prev = memb->slot;
- break;
- }
-diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c
-index b956b7e416c8..125557e18525 100644
---- a/fs/dlm/rcom.c
-+++ b/fs/dlm/rcom.c
-@@ -40,10 +40,10 @@ static void _create_rcom(struct dlm_ls *ls, int to_nodeid, int type, int len,
- rc->rc_header.h_length = cpu_to_le16(mb_len);
- rc->rc_header.h_cmd = DLM_RCOM;
-
-- rc->rc_type = type;
-+ rc->rc_type = cpu_to_le32(type);
-
- spin_lock(&ls->ls_recover_lock);
-- rc->rc_seq = ls->ls_recover_seq;
-+ rc->rc_seq = cpu_to_le64(ls->ls_recover_seq);
- spin_unlock(&ls->ls_recover_lock);
-
- *rc_ret = rc;
-@@ -91,13 +91,11 @@ static int create_rcom_stateless(struct dlm_ls *ls, int to_nodeid, int type,
-
- static void send_rcom(struct dlm_mhandle *mh, struct dlm_rcom *rc)
- {
-- dlm_rcom_out(rc);
- dlm_midcomms_commit_mhandle(mh);
- }
-
- static void send_rcom_stateless(struct dlm_msg *msg, struct dlm_rcom *rc)
- {
-- dlm_rcom_out(rc);
- dlm_lowcomms_commit_msg(msg);
- dlm_lowcomms_put_msg(msg);
- }
-@@ -145,10 +143,10 @@ static int check_rcom_config(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- return 0;
- }
-
--static void allow_sync_reply(struct dlm_ls *ls, uint64_t *new_seq)
-+static void allow_sync_reply(struct dlm_ls *ls, __le64 *new_seq)
- {
- spin_lock(&ls->ls_rcom_spin);
-- *new_seq = ++ls->ls_rcom_seq;
-+ *new_seq = cpu_to_le64(++ls->ls_rcom_seq);
- set_bit(LSFL_RCOM_WAIT, &ls->ls_flags);
- spin_unlock(&ls->ls_rcom_spin);
- }
-@@ -182,7 +180,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid, uint32_t status_flags)
-
- if (nodeid == dlm_our_nodeid()) {
- rc = ls->ls_recover_buf;
-- rc->rc_result = dlm_recover_status(ls);
-+ rc->rc_result = cpu_to_le32(dlm_recover_status(ls));
- goto out;
- }
-
-@@ -208,7 +206,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid, uint32_t status_flags)
-
- rc = ls->ls_recover_buf;
-
-- if (rc->rc_result == -ESRCH) {
-+ if (rc->rc_result == cpu_to_le32(-ESRCH)) {
- /* we pretend the remote lockspace exists with 0 status */
- log_debug(ls, "remote node %d not ready", nodeid);
- rc->rc_result = 0;
-@@ -259,7 +257,7 @@ static void receive_rcom_status(struct dlm_ls *ls, struct dlm_rcom *rc_in)
-
- rc->rc_id = rc_in->rc_id;
- rc->rc_seq_reply = rc_in->rc_seq;
-- rc->rc_result = status;
-+ rc->rc_result = cpu_to_le32(status);
-
- set_rcom_config(ls, (struct rcom_config *)rc->rc_buf, num_slots);
-
-@@ -287,11 +285,11 @@ static void receive_sync_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- {
- spin_lock(&ls->ls_rcom_spin);
- if (!test_bit(LSFL_RCOM_WAIT, &ls->ls_flags) ||
-- rc_in->rc_id != ls->ls_rcom_seq) {
-+ le64_to_cpu(rc_in->rc_id) != ls->ls_rcom_seq) {
- log_debug(ls, "reject reply %d from %d seq %llx expect %llx",
-- rc_in->rc_type,
-+ le32_to_cpu(rc_in->rc_type),
- le32_to_cpu(rc_in->rc_header.h_nodeid),
-- (unsigned long long)rc_in->rc_id,
-+ (unsigned long long)le64_to_cpu(rc_in->rc_id),
- (unsigned long long)ls->ls_rcom_seq);
- goto out;
- }
-@@ -367,7 +365,7 @@ int dlm_send_rcom_lookup(struct dlm_rsb *r, int dir_nodeid)
- if (error)
- goto out;
- memcpy(rc->rc_buf, r->res_name, r->res_length);
-- rc->rc_id = (unsigned long) r->res_id;
-+ rc->rc_id = cpu_to_le64(r->res_id);
-
- send_rcom(mh, rc);
- out:
-@@ -383,7 +381,7 @@ static void receive_rcom_lookup(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- sizeof(struct dlm_rcom);
-
- /* Old code would send this special id to trigger a debug dump. */
-- if (rc_in->rc_id == 0xFFFFFFFF) {
-+ if (rc_in->rc_id == cpu_to_le64(0xFFFFFFFF)) {
- log_error(ls, "receive_rcom_lookup dump from %d", nodeid);
- dlm_dump_rsb_name(ls, rc_in->rc_buf, len);
- return;
-@@ -397,7 +395,7 @@ static void receive_rcom_lookup(struct dlm_ls *ls, struct dlm_rcom *rc_in)
- DLM_LU_RECOVER_MASTER, &ret_nodeid, NULL);
- if (error)
- ret_nodeid = error;
-- rc->rc_result = ret_nodeid;
-+ rc->rc_result = cpu_to_le32(ret_nodeid);
- rc->rc_id = rc_in->rc_id;
- rc->rc_seq_reply = rc_in->rc_seq;
-
-@@ -456,7 +454,7 @@ int dlm_send_rcom_lock(struct dlm_rsb *r, struct dlm_lkb *lkb)
-
- rl = (struct rcom_lock *) rc->rc_buf;
- pack_rcom_lock(r, lkb, rl);
-- rc->rc_id = (unsigned long) r;
-+ rc->rc_id = cpu_to_le64(r);
-
- send_rcom(mh, rc);
- out:
-@@ -510,15 +508,14 @@ int dlm_send_ls_not_ready(int nodeid, struct dlm_rcom *rc_in)
- rc->rc_header.h_length = cpu_to_le16(mb_len);
- rc->rc_header.h_cmd = DLM_RCOM;
-
-- rc->rc_type = DLM_RCOM_STATUS_REPLY;
-+ rc->rc_type = cpu_to_le32(DLM_RCOM_STATUS_REPLY);
- rc->rc_id = rc_in->rc_id;
- rc->rc_seq_reply = rc_in->rc_seq;
-- rc->rc_result = -ESRCH;
-+ rc->rc_result = cpu_to_le32(-ESRCH);
-
- rf = (struct rcom_config *) rc->rc_buf;
- rf->rf_lvblen = cpu_to_le32(~0U);
-
-- dlm_rcom_out(rc);
- dlm_midcomms_commit_mhandle(mh);
-
- return 0;
-@@ -577,27 +574,27 @@ void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- uint64_t seq;
-
- switch (rc->rc_type) {
-- case DLM_RCOM_STATUS_REPLY:
-+ case cpu_to_le32(DLM_RCOM_STATUS_REPLY):
- reply = 1;
- break;
-- case DLM_RCOM_NAMES:
-+ case cpu_to_le32(DLM_RCOM_NAMES):
- names = 1;
- break;
-- case DLM_RCOM_NAMES_REPLY:
-+ case cpu_to_le32(DLM_RCOM_NAMES_REPLY):
- names = 1;
- reply = 1;
- break;
-- case DLM_RCOM_LOOKUP:
-+ case cpu_to_le32(DLM_RCOM_LOOKUP):
- lookup = 1;
- break;
-- case DLM_RCOM_LOOKUP_REPLY:
-+ case cpu_to_le32(DLM_RCOM_LOOKUP_REPLY):
- lookup = 1;
- reply = 1;
- break;
-- case DLM_RCOM_LOCK:
-+ case cpu_to_le32(DLM_RCOM_LOCK):
- lock = 1;
- break;
-- case DLM_RCOM_LOCK_REPLY:
-+ case cpu_to_le32(DLM_RCOM_LOCK_REPLY):
- lock = 1;
- reply = 1;
- break;
-@@ -609,10 +606,10 @@ void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- seq = ls->ls_recover_seq;
- spin_unlock(&ls->ls_recover_lock);
-
-- if (stop && (rc->rc_type != DLM_RCOM_STATUS))
-+ if (stop && (rc->rc_type != cpu_to_le32(DLM_RCOM_STATUS)))
- goto ignore;
-
-- if (reply && (rc->rc_seq_reply != seq))
-+ if (reply && (le64_to_cpu(rc->rc_seq_reply) != seq))
- goto ignore;
-
- if (!(status & DLM_RS_NODES) && (names || lookup || lock))
-@@ -622,59 +619,60 @@ void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid)
- goto ignore;
-
- switch (rc->rc_type) {
-- case DLM_RCOM_STATUS:
-+ case cpu_to_le32(DLM_RCOM_STATUS):
- receive_rcom_status(ls, rc);
- break;
-
-- case DLM_RCOM_NAMES:
-+ case cpu_to_le32(DLM_RCOM_NAMES):
- receive_rcom_names(ls, rc);
- break;
-
-- case DLM_RCOM_LOOKUP:
-+ case cpu_to_le32(DLM_RCOM_LOOKUP):
- receive_rcom_lookup(ls, rc);
- break;
-
-- case DLM_RCOM_LOCK:
-+ case cpu_to_le32(DLM_RCOM_LOCK):
- if (le16_to_cpu(rc->rc_header.h_length) < lock_size)
- goto Eshort;
- receive_rcom_lock(ls, rc);
- break;
-
-- case DLM_RCOM_STATUS_REPLY:
-+ case cpu_to_le32(DLM_RCOM_STATUS_REPLY):
- receive_sync_reply(ls, rc);
- break;
-
-- case DLM_RCOM_NAMES_REPLY:
-+ case cpu_to_le32(DLM_RCOM_NAMES_REPLY):
- receive_sync_reply(ls, rc);
- break;
-
-- case DLM_RCOM_LOOKUP_REPLY:
-+ case cpu_to_le32(DLM_RCOM_LOOKUP_REPLY):
- receive_rcom_lookup_reply(ls, rc);
- break;
-
-- case DLM_RCOM_LOCK_REPLY:
-+ case cpu_to_le32(DLM_RCOM_LOCK_REPLY):
- if (le16_to_cpu(rc->rc_header.h_length) < lock_size)
- goto Eshort;
- dlm_recover_process_copy(ls, rc);
- break;
-
- default:
-- log_error(ls, "receive_rcom bad type %d", rc->rc_type);
-+ log_error(ls, "receive_rcom bad type %d",
-+ le32_to_cpu(rc->rc_type));
- }
- return;
-
- ignore:
- log_limit(ls, "dlm_receive_rcom ignore msg %d "
- "from %d %llu %llu recover seq %llu sts %x gen %u",
-- rc->rc_type,
-+ le32_to_cpu(rc->rc_type),
- nodeid,
-- (unsigned long long)rc->rc_seq,
-- (unsigned long long)rc->rc_seq_reply,
-+ (unsigned long long)le64_to_cpu(rc->rc_seq),
-+ (unsigned long long)le64_to_cpu(rc->rc_seq_reply),
- (unsigned long long)seq,
- status, ls->ls_generation);
- return;
- Eshort:
- log_error(ls, "recovery message %d from %d is too short",
-- rc->rc_type, nodeid);
-+ le32_to_cpu(rc->rc_type), nodeid);
- }
-
-diff --git a/fs/dlm/recover.c b/fs/dlm/recover.c
-index 8928e99dfd47..dfd504bf1ecf 100644
---- a/fs/dlm/recover.c
-+++ b/fs/dlm/recover.c
-@@ -114,7 +114,7 @@ static int wait_status_all(struct dlm_ls *ls, uint32_t wait_status,
- if (save_slots)
- dlm_slot_save(ls, rc, memb);
-
-- if (rc->rc_result & wait_status)
-+ if (le32_to_cpu(rc->rc_result) & wait_status)
- break;
- if (delay < 1000)
- delay += 20;
-@@ -141,7 +141,7 @@ static int wait_status_low(struct dlm_ls *ls, uint32_t wait_status,
- if (error)
- break;
-
-- if (rc->rc_result & wait_status)
-+ if (le32_to_cpu(rc->rc_result) & wait_status)
- break;
- if (delay < 1000)
- delay += 20;
-@@ -568,14 +568,14 @@ int dlm_recover_master_reply(struct dlm_ls *ls, struct dlm_rcom *rc)
- struct dlm_rsb *r;
- int ret_nodeid, new_master;
-
-- r = recover_idr_find(ls, rc->rc_id);
-+ r = recover_idr_find(ls, le64_to_cpu(rc->rc_id));
- if (!r) {
- log_error(ls, "dlm_recover_master_reply no id %llx",
-- (unsigned long long)rc->rc_id);
-+ (unsigned long long)le64_to_cpu(rc->rc_id));
- goto out;
- }
-
-- ret_nodeid = rc->rc_result;
-+ ret_nodeid = le32_to_cpu(rc->rc_result);
-
- if (ret_nodeid == dlm_our_nodeid())
- new_master = 0;
-diff --git a/fs/dlm/util.c b/fs/dlm/util.c
-index 66b9a123768d..657dbed1bd60 100644
---- a/fs/dlm/util.c
-+++ b/fs/dlm/util.c
-@@ -108,21 +108,3 @@ void dlm_message_in(struct dlm_message *ms)
- ms->m_asts = le32_to_cpu(ms->m_asts);
- ms->m_result = from_dlm_errno(le32_to_cpu(ms->m_result));
- }
--
--void dlm_rcom_out(struct dlm_rcom *rc)
--{
-- rc->rc_type = cpu_to_le32(rc->rc_type);
-- rc->rc_result = cpu_to_le32(rc->rc_result);
-- rc->rc_id = cpu_to_le64(rc->rc_id);
-- rc->rc_seq = cpu_to_le64(rc->rc_seq);
-- rc->rc_seq_reply = cpu_to_le64(rc->rc_seq_reply);
--}
--
--void dlm_rcom_in(struct dlm_rcom *rc)
--{
-- rc->rc_type = le32_to_cpu(rc->rc_type);
-- rc->rc_result = le32_to_cpu(rc->rc_result);
-- rc->rc_id = le64_to_cpu(rc->rc_id);
-- rc->rc_seq = le64_to_cpu(rc->rc_seq);
-- rc->rc_seq_reply = le64_to_cpu(rc->rc_seq_reply);
--}
-diff --git a/fs/dlm/util.h b/fs/dlm/util.h
-index cc719ca9397e..cd099c4f5d6a 100644
---- a/fs/dlm/util.h
-+++ b/fs/dlm/util.h
-@@ -13,8 +13,6 @@
-
- void dlm_message_out(struct dlm_message *ms);
- void dlm_message_in(struct dlm_message *ms);
--void dlm_rcom_out(struct dlm_rcom *rc);
--void dlm_rcom_in(struct dlm_rcom *rc);
-
- #endif
-
---
-2.35.1
-
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
- fs/dlm/lock.c | 2 +-
+ fs/dlm/lock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
-index a6a5fbe36ca9..1ce6d988146f 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
-@@ -3631,7 +3631,7 @@ static void send_args(struct dlm_rsb *r, struct dlm_lkb *lkb,
- case cpu_to_le32(DLM_MSG_REQUEST_REPLY):
- case cpu_to_le32(DLM_MSG_CONVERT_REPLY):
- case cpu_to_le32(DLM_MSG_GRANT):
+@@ -3632,7 +3632,7 @@ static void send_args(struct dlm_rsb *r,
+ case DLM_MSG_REQUEST_REPLY:
+ case DLM_MSG_CONVERT_REPLY:
+ case DLM_MSG_GRANT:
- if (!lkb->lkb_lvbptr)
+ if (!lkb->lkb_lvbptr || !(lkb->lkb_exflags & DLM_LKF_VALBLK))
break;
memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen);
break;
---
-2.35.1
-
net-phy-dp83822-disable-mdi-crossover-status-change-.patch
iommu-vt-d-allow-nvs-regions-in-arch_rmrr_sanity_che.patch
iommu-vt-d-clean-up-si_domain-in-the-init_dmars-erro.patch
-dlm-use-__le-types-for-dlm-header.patch
-dlm-use-__le-types-for-rcom-messages.patch
-dlm-use-__le-types-for-dlm-messages.patch
fs-dlm-fix-invalid-derefence-of-sb_lvbptr.patch
scsi-lpfc-adjust-bytes-received-vales-during-cmf-tim.patch
scsi-lpfc-adjust-cmf-total-bytes-and-rxmonitor.patch