diff options
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/xfs_log.c | 11 | ||||
-rw-r--r-- | fs/xfs/xfs_log_priv.h | 10 | ||||
-rw-r--r-- | fs/xfs/xfs_log_recover.c | 12 |
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 | ||
267 | typedef struct xlog_op_header { | 267 | typedef 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; |