Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5809d5e0 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dave Chinner
Browse files

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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
parent 88ee2df7
Loading
Loading
Loading
Loading
+14 −16
Original line number Original line Diff line number Diff line
@@ -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 {
+1 −1
Original line number Original line Diff line number Diff line
@@ -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


};
};