xfs: use ->t_firstblock for all xfs_bunmapi() callers
authorBrian Foster <bfoster@redhat.com>
Thu, 12 Jul 2018 05:26:23 +0000 (22:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 12 Jul 2018 05:26:23 +0000 (22:26 -0700)
Convert all xfs_bunmapi() callers to ->t_firstblock.

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/xfs_bmap_util.c
fs/xfs/xfs_inode.c
fs/xfs/xfs_reflink.c
fs/xfs/xfs_symlink.c

index 6f9b2cd..572c8d0 100644 (file)
@@ -6132,17 +6132,9 @@ xfs_bmap_finish_one(
        xfs_filblks_t                   *blockcount,
        xfs_exntst_t                    state)
 {
-       xfs_fsblock_t                   firstfsb;
        int                             error = 0;
 
-       /*
-        * firstfsb is tied to the transaction lifetime and is used to
-        * ensure correct AG locking order and schedule work item
-        * continuations.  XFS_BUI_MAX_FAST_EXTENTS (== 1) restricts us
-        * to only making one bmap call per transaction, so it should
-        * be safe to have it as a local variable here.
-        */
-       firstfsb = NULLFSBLOCK;
+       ASSERT(tp->t_firstblock == NULLFSBLOCK);
 
        trace_xfs_bmap_deferred(tp->t_mountp,
                        XFS_FSB_TO_AGNO(tp->t_mountp, startblock), type,
@@ -6165,7 +6157,7 @@ xfs_bmap_finish_one(
                break;
        case XFS_BMAP_UNMAP:
                error = __xfs_bunmapi(tp, ip, startoff, blockcount,
-                               XFS_BMAPI_REMAP, 1, &firstfsb);
+                               XFS_BMAPI_REMAP, 1, &tp->t_firstblock);
                break;
        default:
                ASSERT(0);
index dd563f4..0b2b528 100644 (file)
@@ -1024,7 +1024,6 @@ xfs_unmap_extent(
        struct xfs_mount        *mp = ip->i_mount;
        struct xfs_trans        *tp;
        struct xfs_defer_ops    dfops;
-       xfs_fsblock_t           firstfsb;
        uint                    resblks = XFS_DIOSTRAT_SPACE_RES(mp, 0);
        int                     error;
 
@@ -1042,9 +1041,9 @@ xfs_unmap_extent(
 
        xfs_trans_ijoin(tp, ip, 0);
 
-       xfs_defer_init(tp, &dfops, &firstfsb);
-       error = xfs_bunmapi(tp, ip, startoffset_fsb, len_fsb, 0, 2, &firstfsb,
-                           done);
+       xfs_defer_init(tp, &dfops, &tp->t_firstblock);
+       error = xfs_bunmapi(tp, ip, startoffset_fsb, len_fsb, 0, 2,
+                           &tp->t_firstblock, done);
        if (error)
                goto out_bmap_cancel;
 
index ab1fd69..3cdfd79 100644 (file)
@@ -1543,7 +1543,6 @@ xfs_itruncate_extents_flags(
        struct xfs_trans        *tp = *tpp;
        struct xfs_defer_ops    *odfops = tp->t_dfops;
        struct xfs_defer_ops    dfops;
-       xfs_fsblock_t           first_block;
        xfs_fileoff_t           first_unmap_block;
        xfs_fileoff_t           last_block;
        xfs_filblks_t           unmap_len;
@@ -1580,9 +1579,9 @@ xfs_itruncate_extents_flags(
        ASSERT(first_unmap_block < last_block);
        unmap_len = last_block - first_unmap_block + 1;
        while (!done) {
-               xfs_defer_init(tp, &dfops, &first_block);
+               xfs_defer_init(tp, &dfops, &tp->t_firstblock);
                error = xfs_bunmapi(tp, ip, first_unmap_block, unmap_len, flags,
-                                   XFS_ITRUNC_MAX_EXTENTS, &first_block,
+                                   XFS_ITRUNC_MAX_EXTENTS, &tp->t_firstblock,
                                    &done);
                if (error)
                        goto out_bmap_cancel;
index d039762..83c02f6 100644 (file)
@@ -627,7 +627,6 @@ xfs_reflink_end_cow(
        struct xfs_trans                *tp;
        xfs_fileoff_t                   offset_fsb;
        xfs_fileoff_t                   end_fsb;
-       xfs_fsblock_t                   firstfsb;
        struct xfs_defer_ops            dfops;
        int                             error;
        unsigned int                    resblks;
@@ -695,10 +694,10 @@ xfs_reflink_end_cow(
                        goto prev_extent;
 
                /* Unmap the old blocks in the data fork. */
-               xfs_defer_init(tp, &dfops, &firstfsb);
+               xfs_defer_init(tp, &dfops, &tp->t_firstblock);
                rlen = del.br_blockcount;
                error = __xfs_bunmapi(tp, ip, del.br_startoff, &rlen, 0, 1,
-                               &firstfsb);
+                               &tp->t_firstblock);
                if (error)
                        goto out_defer;
 
@@ -1002,7 +1001,6 @@ xfs_reflink_remap_extent(
        struct xfs_mount        *mp = ip->i_mount;
        bool                    real_extent = xfs_bmap_is_real_extent(irec);
        struct xfs_trans        *tp;
-       xfs_fsblock_t           firstfsb;
        unsigned int            resblks;
        struct xfs_defer_ops    dfops;
        struct xfs_bmbt_irec    uirec;
@@ -1045,8 +1043,9 @@ xfs_reflink_remap_extent(
        /* Unmap the old blocks in the data fork. */
        rlen = unmap_len;
        while (rlen) {
-               xfs_defer_init(tp, &dfops, &firstfsb);
-               error = __xfs_bunmapi(tp, ip, destoff, &rlen, 0, 1, &firstfsb);
+               xfs_defer_init(tp, &dfops, &tp->t_firstblock);
+               error = __xfs_bunmapi(tp, ip, destoff, &rlen, 0, 1,
+                                     &tp->t_firstblock);
                if (error)
                        goto out_defer;
 
index 583ca83..18d9b4d 100644 (file)
@@ -400,7 +400,6 @@ xfs_inactive_symlink_rmt(
        xfs_buf_t       *bp;
        int             done;
        int             error;
-       xfs_fsblock_t   first_block;
        struct xfs_defer_ops    dfops;
        int             i;
        xfs_mount_t     *mp;
@@ -440,7 +439,7 @@ xfs_inactive_symlink_rmt(
         * Find the block(s) so we can inval and unmap them.
         */
        done = 0;
-       xfs_defer_init(tp, &dfops, &first_block);
+       xfs_defer_init(tp, &dfops, &tp->t_firstblock);
        nmaps = ARRAY_SIZE(mval);
        error = xfs_bmapi_read(ip, 0, xfs_symlink_blocks(mp, size),
                                mval, &nmaps, 0);
@@ -462,7 +461,8 @@ xfs_inactive_symlink_rmt(
        /*
         * Unmap the dead block(s) to the dfops.
         */
-       error = xfs_bunmapi(tp, ip, 0, size, 0, nmaps, &first_block, &done);
+       error = xfs_bunmapi(tp, ip, 0, size, 0, nmaps, &tp->t_firstblock,
+                           &done);
        if (error)
                goto error_bmap_cancel;
        ASSERT(done);