From: Christoph Hellwig Date: Fri, 31 Jul 2015 01:04:56 +0000 (+1000) Subject: xfs: return a void pointer from xfs_buf_offset X-Git-Tag: v4.2.0-rc1~5^2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=92acb89960885300332967b0c743146e7966c98c;p=thirdparty%2Fxfsprogs-dev.git xfs: return a void pointer from xfs_buf_offset This avoids all kinds of unessecary casts in an envrionment like Linux where we can assume that pointer arithmetics are support on void pointers. Signed-off-by: Christoph Hellwig Reviewed-by: Brian Foster Signed-off-by: Dave Chinner --- diff --git a/libxfs/libxfs_io.h b/libxfs/libxfs_io.h index 0e6ed316e..38b4c6fbe 100644 --- a/libxfs/libxfs_io.h +++ b/libxfs/libxfs_io.h @@ -96,7 +96,7 @@ enum xfs_buf_flags_t { /* b_flags bits */ #define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL)) #define XFS_BUF_PTR(bp) ((char *)(bp)->b_addr) -#define xfs_buf_offset(bp, offset) (XFS_BUF_PTR(bp) + (offset)) +#define xfs_buf_offset(bp, offset) ((bp)->b_addr + (offset)) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SIZE(bp) ((bp)->b_bcount) #define XFS_BUF_COUNT(bp) ((bp)->b_bcount) diff --git a/libxfs/util.c b/libxfs/util.c index a6b1fd1f5..719a5b717 100644 --- a/libxfs/util.c +++ b/libxfs/util.c @@ -425,7 +425,7 @@ libxfs_iflush_int(xfs_inode_t *ip, xfs_buf_t *bp) mp = ip->i_mount; /* set *dip = inode's place in the buffer */ - dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); + dip = xfs_buf_offset(bp, ip->i_imap.im_boffset); ASSERT(ip->i_d.di_magic == XFS_DINODE_MAGIC); if ((ip->i_d.di_mode & S_IFMT) == S_IFREG) { diff --git a/libxfs/xfs_ialloc.h b/libxfs/xfs_ialloc.h index 12401fea7..6e450df29 100644 --- a/libxfs/xfs_ialloc.h +++ b/libxfs/xfs_ialloc.h @@ -51,8 +51,7 @@ xfs_icluster_size_fsb( static inline struct xfs_dinode * xfs_make_iptr(struct xfs_mount *mp, struct xfs_buf *b, int o) { - return (struct xfs_dinode *) - (xfs_buf_offset(b, o << (mp)->m_sb.sb_inodelog)); + return xfs_buf_offset(b, o << (mp)->m_sb.sb_inodelog); } /* diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index fd48f043b..b8e65a9b1 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -44,8 +44,7 @@ xfs_inobp_check( j = mp->m_inode_cluster_size >> mp->m_sb.sb_inodelog; for (i = 0; i < j; i++) { - dip = (xfs_dinode_t *)xfs_buf_offset(bp, - i * mp->m_sb.sb_inodesize); + dip = xfs_buf_offset(bp, i * mp->m_sb.sb_inodesize); if (!dip->di_next_unlinked) { xfs_alert(mp, "Detected bogus zero next_unlinked field in inode %d buffer 0x%llx.", @@ -84,8 +83,7 @@ xfs_inode_buf_verify( int di_ok; xfs_dinode_t *dip; - dip = (struct xfs_dinode *)xfs_buf_offset(bp, - (i << mp->m_sb.sb_inodelog)); + dip = xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog)); di_ok = dip->di_magic == cpu_to_be16(XFS_DINODE_MAGIC) && XFS_DINODE_GOOD_VERSION(dip->di_version); if (unlikely(XFS_TEST_ERROR(!di_ok, mp, @@ -184,7 +182,7 @@ xfs_imap_to_bp( } *bpp = bp; - *dipp = (struct xfs_dinode *)xfs_buf_offset(bp, imap->im_boffset); + *dipp = xfs_buf_offset(bp, imap->im_boffset); return 0; }