diff options
Diffstat (limited to 'fs/xfs/xfs_log_priv.h')
-rw-r--r-- | fs/xfs/xfs_log_priv.h | 47 |
1 files changed, 16 insertions, 31 deletions
diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index 07da6a72628a..e391f58deae1 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h | |||
@@ -55,32 +55,21 @@ struct xfs_mount; | |||
55 | BTOBB(XLOG_MAX_ICLOGS << (XFS_SB_VERSION_HASLOGV2(&log->l_mp->m_sb) ? \ | 55 | BTOBB(XLOG_MAX_ICLOGS << (XFS_SB_VERSION_HASLOGV2(&log->l_mp->m_sb) ? \ |
56 | XLOG_MAX_RECORD_BSHIFT : XLOG_BIG_RECORD_BSHIFT)) | 56 | XLOG_MAX_RECORD_BSHIFT : XLOG_BIG_RECORD_BSHIFT)) |
57 | 57 | ||
58 | /* | ||
59 | * set lsns | ||
60 | */ | ||
61 | 58 | ||
62 | #define ASSIGN_ANY_LSN_HOST(lsn,cycle,block) \ | 59 | static inline xfs_lsn_t xlog_assign_lsn(uint cycle, uint block) |
63 | { \ | 60 | { |
64 | (lsn) = ((xfs_lsn_t)(cycle)<<32)|(block); \ | 61 | return ((xfs_lsn_t)cycle << 32) | block; |
65 | } | 62 | } |
66 | #define ASSIGN_ANY_LSN_DISK(lsn,cycle,block) \ | ||
67 | { \ | ||
68 | INT_SET(((uint *)&(lsn))[0], ARCH_CONVERT, (cycle)); \ | ||
69 | INT_SET(((uint *)&(lsn))[1], ARCH_CONVERT, (block)); \ | ||
70 | } | ||
71 | #define ASSIGN_LSN(lsn,log) \ | ||
72 | ASSIGN_ANY_LSN_DISK(lsn,(log)->l_curr_cycle,(log)->l_curr_block); | ||
73 | |||
74 | #define XLOG_SET(f,b) (((f) & (b)) == (b)) | ||
75 | |||
76 | #define GET_CYCLE(ptr, arch) \ | ||
77 | (INT_GET(*(uint *)(ptr), arch) == XLOG_HEADER_MAGIC_NUM ? \ | ||
78 | INT_GET(*((uint *)(ptr)+1), arch) : \ | ||
79 | INT_GET(*(uint *)(ptr), arch) \ | ||
80 | ) | ||
81 | 63 | ||
82 | #define BLK_AVG(blk1, blk2) ((blk1+blk2) >> 1) | 64 | static inline uint xlog_get_cycle(char *ptr) |
65 | { | ||
66 | if (INT_GET(*(uint *)ptr, ARCH_CONVERT) == XLOG_HEADER_MAGIC_NUM) | ||
67 | return INT_GET(*((uint *)ptr + 1), ARCH_CONVERT); | ||
68 | else | ||
69 | return INT_GET(*(uint *)ptr, ARCH_CONVERT); | ||
70 | } | ||
83 | 71 | ||
72 | #define BLK_AVG(blk1, blk2) ((blk1+blk2) >> 1) | ||
84 | 73 | ||
85 | #ifdef __KERNEL__ | 74 | #ifdef __KERNEL__ |
86 | 75 | ||
@@ -96,14 +85,10 @@ struct xfs_mount; | |||
96 | * | 85 | * |
97 | * this has endian issues, of course. | 86 | * this has endian issues, of course. |
98 | */ | 87 | */ |
99 | 88 | static inline uint xlog_get_client_id(uint i) | |
100 | #ifndef XFS_NATIVE_HOST | 89 | { |
101 | #define GET_CLIENT_ID(i,arch) \ | 90 | return INT_GET(i, ARCH_CONVERT) >> 24; |
102 | ((i) & 0xff) | 91 | } |
103 | #else | ||
104 | #define GET_CLIENT_ID(i,arch) \ | ||
105 | ((i) >> 24) | ||
106 | #endif | ||
107 | 92 | ||
108 | #define xlog_panic(args...) cmn_err(CE_PANIC, ## args) | 93 | #define xlog_panic(args...) cmn_err(CE_PANIC, ## args) |
109 | #define xlog_exit(args...) cmn_err(CE_PANIC, ## args) | 94 | #define xlog_exit(args...) cmn_err(CE_PANIC, ## args) |