xfs_bmap_util: use swap macro
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Thu, 12 Jul 2018 05:26:38 +0000 (22:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Tue, 17 Jul 2018 21:25:57 +0000 (14:25 -0700)
Make use of the swap macro and remove some unnecessary variables.
This makes the code easier to read and maintain. Also, reduces the
stack usage.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_bmap_util.c

index d3a314fd721f0683dfd3357b6dc5ff760ad8cd47..1b78c20de7bd867b4379f230519fd7d72b333da5 100644 (file)
@@ -1688,7 +1688,6 @@ xfs_swap_extent_forks(
        int                     *src_log_flags,
        int                     *target_log_flags)
 {
-       struct xfs_ifork        tempifp, *ifp, *tifp;
        xfs_filblks_t           aforkblks = 0;
        xfs_filblks_t           taforkblks = 0;
        xfs_extnum_t            junk;
@@ -1730,11 +1729,7 @@ xfs_swap_extent_forks(
        /*
         * Swap the data forks of the inodes
         */
-       ifp = &ip->i_df;
-       tifp = &tip->i_df;
-       tempifp = *ifp;         /* struct copy */
-       *ifp = *tifp;           /* struct copy */
-       *tifp = tempifp;        /* struct copy */
+       swap(ip->i_df, tip->i_df);
 
        /*
         * Fix the on-disk inode values
@@ -1743,13 +1738,8 @@ xfs_swap_extent_forks(
        ip->i_d.di_nblocks = tip->i_d.di_nblocks - taforkblks + aforkblks;
        tip->i_d.di_nblocks = tmp + taforkblks - aforkblks;
 
-       tmp = (uint64_t) ip->i_d.di_nextents;
-       ip->i_d.di_nextents = tip->i_d.di_nextents;
-       tip->i_d.di_nextents = tmp;
-
-       tmp = (uint64_t) ip->i_d.di_format;
-       ip->i_d.di_format = tip->i_d.di_format;
-       tip->i_d.di_format = tmp;
+       swap(ip->i_d.di_nextents, tip->i_d.di_nextents);
+       swap(ip->i_d.di_format, tip->i_d.di_format);
 
        /*
         * The extents in the source inode could still contain speculative
@@ -1844,7 +1834,6 @@ xfs_swap_extents(
        int                     src_log_flags, target_log_flags;
        int                     error = 0;
        int                     lock_flags;
-       struct xfs_ifork        *cowfp;
        uint64_t                f;
        int                     resblks = 0;
 
@@ -1986,18 +1975,11 @@ xfs_swap_extents(
 
        /* Swap the cow forks. */
        if (xfs_sb_version_hasreflink(&mp->m_sb)) {
-               xfs_extnum_t    extnum;
-
                ASSERT(ip->i_cformat == XFS_DINODE_FMT_EXTENTS);
                ASSERT(tip->i_cformat == XFS_DINODE_FMT_EXTENTS);
 
-               extnum = ip->i_cnextents;
-               ip->i_cnextents = tip->i_cnextents;
-               tip->i_cnextents = extnum;
-
-               cowfp = ip->i_cowfp;
-               ip->i_cowfp = tip->i_cowfp;
-               tip->i_cowfp = cowfp;
+               swap(ip->i_cnextents, tip->i_cnextents);
+               swap(ip->i_cowfp, tip->i_cowfp);
 
                if (ip->i_cowfp && ip->i_cowfp->if_bytes)
                        xfs_inode_set_cowblocks_tag(ip);