]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: return a void pointer from xfs_buf_offset
authorChristoph Hellwig <hch@lst.de>
Fri, 31 Jul 2015 01:04:56 +0000 (11:04 +1000)
committerDave Chinner <david@fromorbit.com>
Fri, 31 Jul 2015 01:04:56 +0000 (11:04 +1000)
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 <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
libxfs/libxfs_io.h
libxfs/util.c
libxfs/xfs_ialloc.h
libxfs/xfs_inode_buf.c

index 0e6ed316ef0628ed7a19b6c2866681950679eecb..38b4c6fbeee2d91864384f7fd95ae05df66a8449 100644 (file)
@@ -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)
index a6b1fd1f5ab11697877b71380100b1474e616fdf..719a5b7171dff6bd039612f86dd223c0b1996736 100644 (file)
@@ -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) {
index 12401fea7bffbf86869dfa3cb7b4263228fd574a..6e450df2979bfc80a7983cff0dbd79124741aa19 100644 (file)
@@ -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);
 }
 
 /*
index fd48f043b842a013cedf4989b430e5dfa305566b..b8e65a9b1173bd47834cd72ff962a74771ac46ef 100644 (file)
@@ -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;
 }