mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-01 18:55:12 +00:00
2f9dbeda8d
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>
111 lines
3.3 KiB
C
111 lines
3.3 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/******************************************************************************
|
|
*******************************************************************************
|
|
**
|
|
** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved.
|
|
**
|
|
**
|
|
*******************************************************************************
|
|
******************************************************************************/
|
|
|
|
#include "dlm_internal.h"
|
|
#include "rcom.h"
|
|
#include "util.h"
|
|
|
|
#define DLM_ERRNO_EDEADLK 35
|
|
#define DLM_ERRNO_EBADR 53
|
|
#define DLM_ERRNO_EBADSLT 57
|
|
#define DLM_ERRNO_EPROTO 71
|
|
#define DLM_ERRNO_EOPNOTSUPP 95
|
|
#define DLM_ERRNO_ETIMEDOUT 110
|
|
#define DLM_ERRNO_EINPROGRESS 115
|
|
|
|
/* higher errno values are inconsistent across architectures, so select
|
|
one set of values for on the wire */
|
|
|
|
static int to_dlm_errno(int err)
|
|
{
|
|
switch (err) {
|
|
case -EDEADLK:
|
|
return -DLM_ERRNO_EDEADLK;
|
|
case -EBADR:
|
|
return -DLM_ERRNO_EBADR;
|
|
case -EBADSLT:
|
|
return -DLM_ERRNO_EBADSLT;
|
|
case -EPROTO:
|
|
return -DLM_ERRNO_EPROTO;
|
|
case -EOPNOTSUPP:
|
|
return -DLM_ERRNO_EOPNOTSUPP;
|
|
case -ETIMEDOUT:
|
|
return -DLM_ERRNO_ETIMEDOUT;
|
|
case -EINPROGRESS:
|
|
return -DLM_ERRNO_EINPROGRESS;
|
|
}
|
|
return err;
|
|
}
|
|
|
|
static int from_dlm_errno(int err)
|
|
{
|
|
switch (err) {
|
|
case -DLM_ERRNO_EDEADLK:
|
|
return -EDEADLK;
|
|
case -DLM_ERRNO_EBADR:
|
|
return -EBADR;
|
|
case -DLM_ERRNO_EBADSLT:
|
|
return -EBADSLT;
|
|
case -DLM_ERRNO_EPROTO:
|
|
return -EPROTO;
|
|
case -DLM_ERRNO_EOPNOTSUPP:
|
|
return -EOPNOTSUPP;
|
|
case -DLM_ERRNO_ETIMEDOUT:
|
|
return -ETIMEDOUT;
|
|
case -DLM_ERRNO_EINPROGRESS:
|
|
return -EINPROGRESS;
|
|
}
|
|
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));
|
|
}
|