Commit 67fcb7bf authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Lachlan McIlroy

[XFS] clean up some xfs_log_priv.h macros

- the various assign lsn macros are replaced by a single inline,
xlog_assign_lsn, which is equivalent to ASSIGN_ANY_LSN_HOST except
for a more sane calling convention. ASSIGN_LSN_DISK is replaced
by xlog_assign_lsn and a manual bytespap, and ASSIGN_LSN by the same,
except we pass the cycle and block arguments explicitly instead of a
log paramter. The latter two variants only had 2, respectively one
user anyway.
- the GET_CYCLE is replaced by a xlog_get_cycle inline with exactly the
same calling conventions.
- GET_CLIENT_ID is replaced by xlog_get_client_id which leaves away
the unused arch argument. Instead of conditional defintions
depending on host endianess we now do an unconditional swap and shift
then, which generates equal code.
- the unused XLOG_SET macro is removed.

SGI-PV: 971186
SGI-Modid: xfs-linux-melb:xfs-kern:29820a
Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
parent 03bea6fe
...@@ -1829,7 +1829,7 @@ xlog_write(xfs_mount_t * mp, ...@@ -1829,7 +1829,7 @@ xlog_write(xfs_mount_t * mp,
*/ */
if (ticket->t_flags & XLOG_TIC_INITED) { if (ticket->t_flags & XLOG_TIC_INITED) {
logop_head = (xlog_op_header_t *)ptr; logop_head = (xlog_op_header_t *)ptr;
INT_SET(logop_head->oh_tid, ARCH_CONVERT, ticket->t_tid); logop_head->oh_tid = cpu_to_be32(ticket->t_tid);
logop_head->oh_clientid = ticket->t_clientid; logop_head->oh_clientid = ticket->t_clientid;
logop_head->oh_len = 0; logop_head->oh_len = 0;
logop_head->oh_flags = XLOG_START_TRANS; logop_head->oh_flags = XLOG_START_TRANS;
...@@ -1843,7 +1843,7 @@ xlog_write(xfs_mount_t * mp, ...@@ -1843,7 +1843,7 @@ xlog_write(xfs_mount_t * mp,
/* Copy log operation header directly into data section */ /* Copy log operation header directly into data section */
logop_head = (xlog_op_header_t *)ptr; logop_head = (xlog_op_header_t *)ptr;
INT_SET(logop_head->oh_tid, ARCH_CONVERT, ticket->t_tid); logop_head->oh_tid = cpu_to_be32(ticket->t_tid);
logop_head->oh_clientid = ticket->t_clientid; logop_head->oh_clientid = ticket->t_clientid;
logop_head->oh_res2 = 0; logop_head->oh_res2 = 0;
...@@ -1878,13 +1878,14 @@ xlog_write(xfs_mount_t * mp, ...@@ -1878,13 +1878,14 @@ xlog_write(xfs_mount_t * mp,
copy_off = partial_copy_len; copy_off = partial_copy_len;
if (need_copy <= iclog->ic_size - log_offset) { /*complete write */ if (need_copy <= iclog->ic_size - log_offset) { /*complete write */
INT_SET(logop_head->oh_len, ARCH_CONVERT, copy_len = need_copy); copy_len = need_copy;
logop_head->oh_len = cpu_to_be32(copy_len);
if (partial_copy) if (partial_copy)
logop_head->oh_flags|= (XLOG_END_TRANS|XLOG_WAS_CONT_TRANS); logop_head->oh_flags|= (XLOG_END_TRANS|XLOG_WAS_CONT_TRANS);
partial_copy_len = partial_copy = 0; partial_copy_len = partial_copy = 0;
} else { /* partial write */ } else { /* partial write */
copy_len = iclog->ic_size - log_offset; copy_len = iclog->ic_size - log_offset;
INT_SET(logop_head->oh_len, ARCH_CONVERT, copy_len); logop_head->oh_len = cpu_to_be32(copy_len);
logop_head->oh_flags |= XLOG_CONTINUE_TRANS; logop_head->oh_flags |= XLOG_CONTINUE_TRANS;
if (partial_copy) if (partial_copy)
logop_head->oh_flags |= XLOG_WAS_CONT_TRANS; logop_head->oh_flags |= XLOG_WAS_CONT_TRANS;
...@@ -3504,7 +3505,7 @@ xlog_verify_iclog(xlog_t *log, ...@@ -3504,7 +3505,7 @@ xlog_verify_iclog(xlog_t *log,
field_offset = (__psint_t) field_offset = (__psint_t)
((xfs_caddr_t)&(ophead->oh_len) - base_ptr); ((xfs_caddr_t)&(ophead->oh_len) - base_ptr);
if (syncing == B_FALSE || (field_offset & 0x1ff)) { if (syncing == B_FALSE || (field_offset & 0x1ff)) {
op_len = INT_GET(ophead->oh_len, ARCH_CONVERT); op_len = be32_to_cpu(ophead->oh_len);
} else { } else {
idx = BTOBBT((__psint_t)&ophead->oh_len - idx = BTOBBT((__psint_t)&ophead->oh_len -
(__psint_t)iclog->ic_datap); (__psint_t)iclog->ic_datap);
......
...@@ -265,11 +265,11 @@ typedef struct xlog_ticket { ...@@ -265,11 +265,11 @@ typedef struct xlog_ticket {
typedef struct xlog_op_header { typedef struct xlog_op_header {
xlog_tid_t oh_tid; /* transaction id of operation : 4 b */ __be32 oh_tid; /* transaction id of operation : 4 b */
int oh_len; /* bytes in data region : 4 b */ __be32 oh_len; /* bytes in data region : 4 b */
__uint8_t oh_clientid; /* who sent me this : 1 b */ __u8 oh_clientid; /* who sent me this : 1 b */
__uint8_t oh_flags; /* : 1 b */ __u8 oh_flags; /* : 1 b */
ushort oh_res2; /* 32 bit align : 2 b */ __u16 oh_res2; /* 32 bit align : 2 b */
} xlog_op_header_t; } xlog_op_header_t;
......
...@@ -2916,7 +2916,7 @@ xlog_recover_process_data( ...@@ -2916,7 +2916,7 @@ xlog_recover_process_data(
ASSERT(0); ASSERT(0);
return (XFS_ERROR(EIO)); return (XFS_ERROR(EIO));
} }
tid = INT_GET(ohead->oh_tid, ARCH_CONVERT); tid = be32_to_cpu(ohead->oh_tid);
hash = XLOG_RHASH(tid); hash = XLOG_RHASH(tid);
trans = xlog_recover_find_tid(rhash[hash], tid); trans = xlog_recover_find_tid(rhash[hash], tid);
if (trans == NULL) { /* not found; add new tid */ if (trans == NULL) { /* not found; add new tid */
...@@ -2924,7 +2924,7 @@ xlog_recover_process_data( ...@@ -2924,7 +2924,7 @@ xlog_recover_process_data(
xlog_recover_new_tid(&rhash[hash], tid, xlog_recover_new_tid(&rhash[hash], tid,
INT_GET(rhead->h_lsn, ARCH_CONVERT)); INT_GET(rhead->h_lsn, ARCH_CONVERT));
} else { } else {
ASSERT(dp+INT_GET(ohead->oh_len, ARCH_CONVERT) <= lp); ASSERT(dp + be32_to_cpu(ohead->oh_len) <= lp);
flags = ohead->oh_flags & ~XLOG_END_TRANS; flags = ohead->oh_flags & ~XLOG_END_TRANS;
if (flags & XLOG_WAS_CONT_TRANS) if (flags & XLOG_WAS_CONT_TRANS)
flags &= ~XLOG_CONTINUE_TRANS; flags &= ~XLOG_CONTINUE_TRANS;
...@@ -2938,8 +2938,7 @@ xlog_recover_process_data( ...@@ -2938,8 +2938,7 @@ xlog_recover_process_data(
break; break;
case XLOG_WAS_CONT_TRANS: case XLOG_WAS_CONT_TRANS:
error = xlog_recover_add_to_cont_trans(trans, error = xlog_recover_add_to_cont_trans(trans,
dp, INT_GET(ohead->oh_len, dp, be32_to_cpu(ohead->oh_len));
ARCH_CONVERT));
break; break;
case XLOG_START_TRANS: case XLOG_START_TRANS:
xlog_warn( xlog_warn(
...@@ -2950,8 +2949,7 @@ xlog_recover_process_data( ...@@ -2950,8 +2949,7 @@ xlog_recover_process_data(
case 0: case 0:
case XLOG_CONTINUE_TRANS: case XLOG_CONTINUE_TRANS:
error = xlog_recover_add_to_trans(trans, error = xlog_recover_add_to_trans(trans,
dp, INT_GET(ohead->oh_len, dp, be32_to_cpu(ohead->oh_len));
ARCH_CONVERT));
break; break;
default: default:
xlog_warn( xlog_warn(
...@@ -2963,7 +2961,7 @@ xlog_recover_process_data( ...@@ -2963,7 +2961,7 @@ xlog_recover_process_data(
if (error) if (error)
return error; return error;
} }
dp += INT_GET(ohead->oh_len, ARCH_CONVERT); dp += be32_to_cpu(ohead->oh_len);
num_logops--; num_logops--;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment