OSDN Git Service

xfs: use ->t_dfops for collapse/insert range operations
authorBrian Foster <bfoster@redhat.com>
Thu, 12 Jul 2018 05:26:15 +0000 (22:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 12 Jul 2018 05:26:15 +0000 (22:26 -0700)
Use ->t_dfops for the collapse and insert range transactions. These
are the only callers of the respective bmap helpers, so replace the
unnecessary dfops parameters with direct accesses to ->t_dfops.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_bmap.c
fs/xfs/libxfs/xfs_bmap.h
fs/xfs/xfs_bmap_util.c

index e24c547..89a21dc 100644 (file)
@@ -5683,8 +5683,7 @@ xfs_bmap_collapse_extents(
        xfs_fileoff_t           *next_fsb,
        xfs_fileoff_t           offset_shift_fsb,
        bool                    *done,
-       xfs_fsblock_t           *firstblock,
-       struct xfs_defer_ops    *dfops)
+       xfs_fsblock_t           *firstblock)
 {
        int                     whichfork = XFS_DATA_FORK;
        struct xfs_mount        *mp = ip->i_mount;
@@ -5718,7 +5717,7 @@ xfs_bmap_collapse_extents(
        if (ifp->if_flags & XFS_IFBROOT) {
                cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
                cur->bc_private.b.firstblock = *firstblock;
-               cur->bc_private.b.dfops = dfops;
+               cur->bc_private.b.dfops = tp->t_dfops;
                cur->bc_private.b.flags = 0;
        }
 
@@ -5739,7 +5738,7 @@ xfs_bmap_collapse_extents(
                if (xfs_bmse_can_merge(&prev, &got, offset_shift_fsb)) {
                        error = xfs_bmse_merge(ip, whichfork, offset_shift_fsb,
                                        &icur, &got, &prev, cur, &logflags,
-                                       dfops);
+                                       tp->t_dfops);
                        if (error)
                                goto del_cursor;
                        goto done;
@@ -5752,7 +5751,7 @@ xfs_bmap_collapse_extents(
        }
 
        error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
-                       &logflags, dfops, new_startoff);
+                       &logflags, tp->t_dfops, new_startoff);
        if (error)
                goto del_cursor;
 
@@ -5806,8 +5805,7 @@ xfs_bmap_insert_extents(
        xfs_fileoff_t           offset_shift_fsb,
        bool                    *done,
        xfs_fileoff_t           stop_fsb,
-       xfs_fsblock_t           *firstblock,
-       struct xfs_defer_ops    *dfops)
+       xfs_fsblock_t           *firstblock)
 {
        int                     whichfork = XFS_DATA_FORK;
        struct xfs_mount        *mp = ip->i_mount;
@@ -5841,7 +5839,7 @@ xfs_bmap_insert_extents(
        if (ifp->if_flags & XFS_IFBROOT) {
                cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
                cur->bc_private.b.firstblock = *firstblock;
-               cur->bc_private.b.dfops = dfops;
+               cur->bc_private.b.dfops = tp->t_dfops;
                cur->bc_private.b.flags = 0;
        }
 
@@ -5884,7 +5882,7 @@ xfs_bmap_insert_extents(
        }
 
        error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
-                       &logflags, dfops, new_startoff);
+                       &logflags, tp->t_dfops, new_startoff);
        if (error)
                goto del_cursor;
 
index 5602356..83180c7 100644 (file)
@@ -219,14 +219,12 @@ void      xfs_bmap_del_extent_cow(struct xfs_inode *ip,
 uint   xfs_default_attroffset(struct xfs_inode *ip);
 int    xfs_bmap_collapse_extents(struct xfs_trans *tp, struct xfs_inode *ip,
                xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
-               bool *done, xfs_fsblock_t *firstblock,
-               struct xfs_defer_ops *dfops);
+               bool *done, xfs_fsblock_t *firstblock);
 int    xfs_bmap_can_insert_extents(struct xfs_inode *ip, xfs_fileoff_t off,
                xfs_fileoff_t shift);
 int    xfs_bmap_insert_extents(struct xfs_trans *tp, struct xfs_inode *ip,
                xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
-               bool *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock,
-               struct xfs_defer_ops *dfops);
+               bool *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock);
 int    xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset);
 int    xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
                xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
index 6c02cd2..cd5d410 100644 (file)
@@ -1348,12 +1348,13 @@ xfs_collapse_file_space(
                xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
 
                xfs_defer_init(&dfops, &first_block);
+               tp->t_dfops = &dfops;
                error = xfs_bmap_collapse_extents(tp, ip, &next_fsb, shift_fsb,
-                               &done, &first_block, &dfops);
+                               &done, &first_block);
                if (error)
                        goto out_bmap_cancel;
 
-               error = xfs_defer_finish(&tp, &dfops);
+               error = xfs_defer_finish(&tp, tp->t_dfops);
                if (error)
                        goto out_bmap_cancel;
                error = xfs_trans_commit(tp);
@@ -1362,7 +1363,7 @@ xfs_collapse_file_space(
        return error;
 
 out_bmap_cancel:
-       xfs_defer_cancel(&dfops);
+       xfs_defer_cancel(tp->t_dfops);
 out_trans_cancel:
        xfs_trans_cancel(tp);
        return error;
@@ -1427,12 +1428,13 @@ xfs_insert_file_space(
                xfs_ilock(ip, XFS_ILOCK_EXCL);
                xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
                xfs_defer_init(&dfops, &first_block);
+               tp->t_dfops = &dfops;
                error = xfs_bmap_insert_extents(tp, ip, &next_fsb, shift_fsb,
-                               &done, stop_fsb, &first_block, &dfops);
+                               &done, stop_fsb, &first_block);
                if (error)
                        goto out_bmap_cancel;
 
-               error = xfs_defer_finish(&tp, &dfops);
+               error = xfs_defer_finish(&tp, tp->t_dfops);
                if (error)
                        goto out_bmap_cancel;
                error = xfs_trans_commit(tp);
@@ -1441,7 +1443,7 @@ xfs_insert_file_space(
        return error;
 
 out_bmap_cancel:
-       xfs_defer_cancel(&dfops);
+       xfs_defer_cancel(tp->t_dfops);
        xfs_trans_cancel(tp);
        return error;
 }