aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-10-11 20:58:59 -0400
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-02-07 02:11:38 -0500
commit67fcb7bfb69eb1072c7e2dd6b46fa34db11dd587 (patch)
treef0666c9b6745fe0641136142c36d42c0da0331f5 /fs
parent03bea6fe6c38c502c815432999eacfa2eccb0a12 (diff)
[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: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/xfs_log.c11
-rw-r--r--fs/xfs/xfs_log_priv.h10
-rw-r--r--fs/xfs/xfs_log_recover.c12
3 files changed, 16 insertions, 17 deletions
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 90d96caf7200..5ff4643b72c7 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -1829,7 +1829,7 @@ xlog_write(xfs_mount_t * mp,
1829 */ 1829 */
1830 if (ticket->t_flags & XLOG_TIC_INITED) { 1830 if (ticket->t_flags & XLOG_TIC_INITED) {
1831 logop_head = (xlog_op_header_t *)ptr; 1831 logop_head = (xlog_op_header_t *)ptr;
1832 INT_SET(logop_head->oh_tid, ARCH_CONVERT, ticket->t_tid); 1832 logop_head->oh_tid = cpu_to_be32(ticket->t_tid);
1833 logop_head->oh_clientid = ticket->t_clientid; 1833 logop_head->oh_clientid = ticket->t_clientid;
1834 logop_head->oh_len = 0; 1834 logop_head->oh_len = 0;
1835 logop_head->oh_flags = XLOG_START_TRANS; 1835 logop_head->oh_flags = XLOG_START_TRANS;
@@ -1843,7 +1843,7 @@ xlog_write(xfs_mount_t * mp,
1843 1843
1844 /* Copy log operation header directly into data section */ 1844 /* Copy log operation header directly into data section */
1845 logop_head = (xlog_op_header_t *)ptr; 1845 logop_head = (xlog_op_header_t *)ptr;
1846 INT_SET(logop_head->oh_tid, ARCH_CONVERT, ticket->t_tid); 1846 logop_head->oh_tid = cpu_to_be32(ticket->t_tid);
1847 logop_head->oh_clientid = ticket->t_clientid; 1847 logop_head->oh_clientid = ticket->t_clientid;
1848 logop_head->oh_res2 = 0; 1848 logop_head->oh_res2 = 0;
1849 1849
@@ -1878,13 +1878,14 @@ xlog_write(xfs_mount_t * mp,
1878 1878
1879 copy_off = partial_copy_len; 1879 copy_off = partial_copy_len;
1880 if (need_copy <= iclog->ic_size - log_offset) { /*complete write */ 1880 if (need_copy <= iclog->ic_size - log_offset) { /*complete write */
1881 INT_SET(logop_head->oh_len, ARCH_CONVERT, copy_len = need_copy); 1881 copy_len = need_copy;
1882 logop_head->oh_len = cpu_to_be32(copy_len);
1882 if (partial_copy) 1883 if (partial_copy)
1883 logop_head->oh_flags|= (XLOG_END_TRANS|XLOG_WAS_CONT_TRANS); 1884 logop_head->oh_flags|= (XLOG_END_TRANS|XLOG_WAS_CONT_TRANS);
1884 partial_copy_len = partial_copy = 0; 1885 partial_copy_len = partial_copy = 0;
1885 } else { /* partial write */ 1886 } else { /* partial write */
1886 copy_len = iclog->ic_size - log_offset; 1887 copy_len = iclog->ic_size - log_offset;
1887 INT_SET(logop_head->oh_len, ARCH_CONVERT, copy_len); 1888 logop_head->oh_len = cpu_to_be32(copy_len);
1888 logop_head->oh_flags |= XLOG_CONTINUE_TRANS; 1889 logop_head->oh_flags |= XLOG_CONTINUE_TRANS;
1889 if (partial_copy) 1890 if (partial_copy)
1890 logop_head->oh_flags |= XLOG_WAS_CONT_TRANS; 1891 logop_head->oh_flags |= XLOG_WAS_CONT_TRANS;
@@ -3504,7 +3505,7 @@ xlog_verify_iclog(xlog_t *log,
3504 field_offset = (__psint_t) 3505 field_offset = (__psint_t)
3505 ((xfs_caddr_t)&(ophead->oh_len) - base_ptr); 3506 ((xfs_caddr_t)&(ophead->oh_len) - base_ptr);
3506 if (syncing == B_FALSE || (field_offset & 0x1ff)) { 3507 if (syncing == B_FALSE || (field_offset & 0x1ff)) {
3507 op_len = INT_GET(ophead->oh_len, ARCH_CONVERT); 3508 op_len = be32_to_cpu(ophead->oh_len);
3508 } else { 3509 } else {
3509 idx = BTOBBT((__psint_t)&ophead->oh_len - 3510 idx = BTOBBT((__psint_t)&ophead->oh_len -
3510 (__psint_t)iclog->ic_datap); 3511 (__psint_t)iclog->ic_datap);
diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h
index e391f58deae1..d555aebca9bc 100644
--- a/fs/xfs/xfs_log_priv.h
+++ b/fs/xfs/xfs_log_priv.h
@@ -265,11 +265,11 @@ typedef struct xlog_ticket {
265 265
266 266
267typedef struct xlog_op_header { 267typedef struct xlog_op_header {
268 xlog_tid_t oh_tid; /* transaction id of operation : 4 b */ 268 __be32 oh_tid; /* transaction id of operation : 4 b */
269 int oh_len; /* bytes in data region : 4 b */ 269 __be32 oh_len; /* bytes in data region : 4 b */
270 __uint8_t oh_clientid; /* who sent me this : 1 b */ 270 __u8 oh_clientid; /* who sent me this : 1 b */
271 __uint8_t oh_flags; /* : 1 b */ 271 __u8 oh_flags; /* : 1 b */
272 ushort oh_res2; /* 32 bit align : 2 b */ 272 __u16 oh_res2; /* 32 bit align : 2 b */
273} xlog_op_header_t; 273} xlog_op_header_t;
274 274
275 275
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index e603591b9922..f27b6e93a682 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -2916,7 +2916,7 @@ xlog_recover_process_data(
2916 ASSERT(0); 2916 ASSERT(0);
2917 return (XFS_ERROR(EIO)); 2917 return (XFS_ERROR(EIO));
2918 } 2918 }
2919 tid = INT_GET(ohead->oh_tid, ARCH_CONVERT); 2919 tid = be32_to_cpu(ohead->oh_tid);
2920 hash = XLOG_RHASH(tid); 2920 hash = XLOG_RHASH(tid);
2921 trans = xlog_recover_find_tid(rhash[hash], tid); 2921 trans = xlog_recover_find_tid(rhash[hash], tid);
2922 if (trans == NULL) { /* not found; add new tid */ 2922 if (trans == NULL) { /* not found; add new tid */
@@ -2924,7 +2924,7 @@ xlog_recover_process_data(
2924 xlog_recover_new_tid(&rhash[hash], tid, 2924 xlog_recover_new_tid(&rhash[hash], tid,
2925 INT_GET(rhead->h_lsn, ARCH_CONVERT)); 2925 INT_GET(rhead->h_lsn, ARCH_CONVERT));
2926 } else { 2926 } else {
2927 ASSERT(dp+INT_GET(ohead->oh_len, ARCH_CONVERT) <= lp); 2927 ASSERT(dp + be32_to_cpu(ohead->oh_len) <= lp);
2928 flags = ohead->oh_flags & ~XLOG_END_TRANS; 2928 flags = ohead->oh_flags & ~XLOG_END_TRANS;
2929 if (flags & XLOG_WAS_CONT_TRANS) 2929 if (flags & XLOG_WAS_CONT_TRANS)
2930 flags &= ~XLOG_CONTINUE_TRANS; 2930 flags &= ~XLOG_CONTINUE_TRANS;
@@ -2938,8 +2938,7 @@ xlog_recover_process_data(
2938 break; 2938 break;
2939 case XLOG_WAS_CONT_TRANS: 2939 case XLOG_WAS_CONT_TRANS:
2940 error = xlog_recover_add_to_cont_trans(trans, 2940 error = xlog_recover_add_to_cont_trans(trans,
2941 dp, INT_GET(ohead->oh_len, 2941 dp, be32_to_cpu(ohead->oh_len));
2942 ARCH_CONVERT));
2943 break; 2942 break;
2944 case XLOG_START_TRANS: 2943 case XLOG_START_TRANS:
2945 xlog_warn( 2944 xlog_warn(
@@ -2950,8 +2949,7 @@ xlog_recover_process_data(
2950 case 0: 2949 case 0:
2951 case XLOG_CONTINUE_TRANS: 2950 case XLOG_CONTINUE_TRANS:
2952 error = xlog_recover_add_to_trans(trans, 2951 error = xlog_recover_add_to_trans(trans,
2953 dp, INT_GET(ohead->oh_len, 2952 dp, be32_to_cpu(ohead->oh_len));
2954 ARCH_CONVERT));
2955 break; 2953 break;
2956 default: 2954 default:
2957 xlog_warn( 2955 xlog_warn(
@@ -2963,7 +2961,7 @@ xlog_recover_process_data(
2963 if (error) 2961 if (error)
2964 return error; 2962 return error;
2965 } 2963 }
2966 dp += INT_GET(ohead->oh_len, ARCH_CONVERT); 2964 dp += be32_to_cpu(ohead->oh_len);
2967 num_logops--; 2965 num_logops--;
2968 } 2966 }
2969 return 0; 2967 return 0;