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:
parent
88ee2df7f2
commit
5809d5e083
@ -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 {
|
||||||
|
@ -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
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user