xfs: use void pointers in log validation helpers

Compared to char pointers this saves us a lot of casting effort.  Also
add another local variable to make the code easier to read.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Christoph Hellwig 2015-06-22 09:44:47 +10:00 committed by Dave Chinner
parent 88ee2df7f2
commit 5809d5e083
2 changed files with 15 additions and 17 deletions

View File

@ -109,7 +109,7 @@ xlog_ungrant_log_space(
STATIC void STATIC void
xlog_verify_dest_ptr( xlog_verify_dest_ptr(
struct xlog *log, struct xlog *log,
char *ptr); void *ptr);
STATIC void STATIC void
xlog_verify_grant_tail( xlog_verify_grant_tail(
struct xlog *log); struct xlog *log);
@ -1447,7 +1447,7 @@ xlog_alloc_log(
iclog->ic_bp = bp; iclog->ic_bp = bp;
iclog->ic_data = bp->b_addr; iclog->ic_data = bp->b_addr;
#ifdef DEBUG #ifdef DEBUG
log->l_iclog_bak[i] = (xfs_caddr_t)&(iclog->ic_header); log->l_iclog_bak[i] = &iclog->ic_header;
#endif #endif
head = &iclog->ic_header; head = &iclog->ic_header;
memset(head, 0, sizeof(xlog_rec_header_t)); memset(head, 0, sizeof(xlog_rec_header_t));
@ -3664,7 +3664,7 @@ xlog_ticket_alloc(
void void
xlog_verify_dest_ptr( xlog_verify_dest_ptr(
struct xlog *log, struct xlog *log,
char *ptr) void *ptr)
{ {
int i; int i;
int good_ptr = 0; int good_ptr = 0;
@ -3767,8 +3767,7 @@ xlog_verify_iclog(
xlog_op_header_t *ophead; xlog_op_header_t *ophead;
xlog_in_core_t *icptr; xlog_in_core_t *icptr;
xlog_in_core_2_t *xhdr; xlog_in_core_2_t *xhdr;
xfs_caddr_t ptr; void *base_ptr, *ptr, *p;
xfs_caddr_t base_ptr;
ptrdiff_t field_offset; ptrdiff_t field_offset;
__uint8_t clientid; __uint8_t clientid;
int len, i, j, k, op_len; int len, i, j, k, op_len;
@ -3788,9 +3787,9 @@ xlog_verify_iclog(
if (iclog->ic_header.h_magicno != cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) if (iclog->ic_header.h_magicno != cpu_to_be32(XLOG_HEADER_MAGIC_NUM))
xfs_emerg(log->l_mp, "%s: invalid magic num", __func__); xfs_emerg(log->l_mp, "%s: invalid magic num", __func__);
ptr = (xfs_caddr_t) &iclog->ic_header; base_ptr = ptr = &iclog->ic_header;
for (ptr += BBSIZE; ptr < ((xfs_caddr_t)&iclog->ic_header) + count; p = &iclog->ic_header;
ptr += BBSIZE) { for (ptr += BBSIZE; ptr < base_ptr + count; ptr += BBSIZE) {
if (*(__be32 *)ptr == cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) if (*(__be32 *)ptr == cpu_to_be32(XLOG_HEADER_MAGIC_NUM))
xfs_emerg(log->l_mp, "%s: unexpected magic num", xfs_emerg(log->l_mp, "%s: unexpected magic num",
__func__); __func__);
@ -3798,16 +3797,15 @@ xlog_verify_iclog(
/* check fields */ /* check fields */
len = be32_to_cpu(iclog->ic_header.h_num_logops); len = be32_to_cpu(iclog->ic_header.h_num_logops);
ptr = iclog->ic_datap; base_ptr = ptr = iclog->ic_datap;
base_ptr = ptr; ophead = ptr;
ophead = (xlog_op_header_t *)ptr;
xhdr = iclog->ic_data; xhdr = iclog->ic_data;
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
ophead = (xlog_op_header_t *)ptr; ophead = ptr;
/* clientid is only 1 byte */ /* clientid is only 1 byte */
field_offset = (ptrdiff_t) p = &ophead->oh_clientid;
((xfs_caddr_t)&(ophead->oh_clientid) - base_ptr); field_offset = p - base_ptr;
if (!syncing || (field_offset & 0x1ff)) { if (!syncing || (field_offset & 0x1ff)) {
clientid = ophead->oh_clientid; clientid = ophead->oh_clientid;
} else { } else {
@ -3829,8 +3827,8 @@ xlog_verify_iclog(
(unsigned long)field_offset); (unsigned long)field_offset);
/* check length */ /* check length */
field_offset = (ptrdiff_t) p = &ophead->oh_len;
((xfs_caddr_t)&(ophead->oh_len) - base_ptr); field_offset = p - base_ptr;
if (!syncing || (field_offset & 0x1ff)) { if (!syncing || (field_offset & 0x1ff)) {
op_len = be32_to_cpu(ophead->oh_len); op_len = be32_to_cpu(ophead->oh_len);
} else { } else {

View File

@ -409,7 +409,7 @@ struct xlog {
/* The following field are used for debugging; need to hold icloglock */ /* The following field are used for debugging; need to hold icloglock */
#ifdef DEBUG #ifdef DEBUG
char *l_iclog_bak[XLOG_MAX_ICLOGS]; void *l_iclog_bak[XLOG_MAX_ICLOGS];
#endif #endif
}; };