mp = args->mp;
        type = args->otype = args->type;
        args->agbno = NULLAGBLOCK;
-       if (args->tp->t_firstblock != NULLFSBLOCK)
-               minimum_agno = XFS_FSB_TO_AGNO(mp, args->tp->t_firstblock);
+       if (args->tp->t_highest_agno != NULLAGNUMBER)
+               minimum_agno = args->tp->t_highest_agno;
        /*
         * Just fix this up, for the case where the last a.g. is shorter
         * (or there's only one a.g.) and the caller couldn't easily figure
         * deadlocks.
         */
        if (args->agbp &&
-           (args->tp->t_firstblock == NULLFSBLOCK ||
-            args->pag->pag_agno > minimum_agno)) {
-               args->tp->t_firstblock = XFS_AGB_TO_FSB(mp,
-                                       args->pag->pag_agno, 0);
-       }
+           (args->tp->t_highest_agno == NULLAGNUMBER ||
+            args->pag->pag_agno > minimum_agno))
+               args->tp->t_highest_agno = args->pag->pag_agno;
        xfs_perag_put(args->pag);
        return 0;
 error0:
 
 {
        struct xfs_ifork        *ifp = xfs_ifork_ptr(ip, fork);
 
-       if (tp && tp->t_firstblock != NULLFSBLOCK)
+       if (tp && tp->t_highest_agno != NULLAGNUMBER)
                return 0;
        if (ifp->if_format != XFS_DINODE_FMT_BTREE)
                return 1;
        struct xfs_bmbt_irec            *bmap = &bi->bi_bmap;
        int                             error = 0;
 
-       ASSERT(tp->t_firstblock == NULLFSBLOCK);
+       ASSERT(tp->t_highest_agno == NULLAGNUMBER);
 
        trace_xfs_bmap_deferred(tp->t_mountp,
                        XFS_FSB_TO_AGNO(tp->t_mountp, bmap->br_startblock),
 
        struct xfs_btree_cur    *src,
        struct xfs_btree_cur    *dst)
 {
-       ASSERT((dst->bc_tp->t_firstblock != NULLFSBLOCK) ||
+       ASSERT((dst->bc_tp->t_highest_agno != NULLAGNUMBER) ||
               (dst->bc_ino.ip->i_diflags & XFS_DIFLAG_REALTIME));
 
        dst->bc_ino.allocated += src->bc_ino.allocated;
-       dst->bc_tp->t_firstblock = src->bc_tp->t_firstblock;
+       dst->bc_tp->t_highest_agno = src->bc_tp->t_highest_agno;
 
        src->bc_ino.allocated = 0;
 }
         * we have to ensure that we attempt to locate the entire set of bmbt
         * allocations in the same AG, as xfs_bmapi_write() would have reserved.
         */
-       if (cur->bc_tp->t_firstblock == NULLFSBLOCK)
+       if (cur->bc_tp->t_highest_agno == NULLAGNUMBER)
                args.minleft = xfs_bmapi_minleft(cur->bc_tp, cur->bc_ino.ip,
                                        cur->bc_ino.whichfork);
 
 
        DECLARE_COMPLETION_ONSTACK(done);
 
        if (cur->bc_btnum != XFS_BTNUM_BMAP ||
-           cur->bc_tp->t_firstblock == NULLFSBLOCK)
+           cur->bc_tp->t_highest_agno == NULLAGNUMBER)
                return __xfs_btree_split(cur, level, ptrp, key, curp, stat);
 
        args.cur = cur;
 
 
                /* Unmap the old blocks in the source file. */
                while (tirec.br_blockcount) {
-                       ASSERT(tp->t_firstblock == NULLFSBLOCK);
+                       ASSERT(tp->t_highest_agno == NULLAGNUMBER);
                        trace_xfs_swap_extent_rmap_remap_piece(tip, &tirec);
 
                        /* Read extent from the source file */
 
 
        unmap_len = XFS_MAX_FILEOFF - first_unmap_block + 1;
        while (unmap_len > 0) {
-               ASSERT(tp->t_firstblock == NULLFSBLOCK);
+               ASSERT(tp->t_highest_agno == NULLAGNUMBER);
                error = __xfs_bunmapi(tp, ip, first_unmap_block, &unmap_len,
                                flags, XFS_ITRUNC_MAX_EXTENTS);
                if (error)
 
                        if (error)
                                break;
                } else if (del.br_state == XFS_EXT_UNWRITTEN || cancel_real) {
-                       ASSERT((*tpp)->t_firstblock == NULLFSBLOCK);
+                       ASSERT((*tpp)->t_highest_agno == NULLAGNUMBER);
 
                        /* Free the CoW orphan record. */
                        xfs_refcount_free_cow_extent(*tpp, del.br_startblock,
 
                __field(char, wasfromfl)
                __field(int, resv)
                __field(int, datatype)
-               __field(xfs_fsblock_t, firstblock)
+               __field(xfs_agnumber_t, highest_agno)
        ),
        TP_fast_assign(
                __entry->dev = args->mp->m_super->s_dev;
                __entry->wasfromfl = args->wasfromfl;
                __entry->resv = args->resv;
                __entry->datatype = args->datatype;
-               __entry->firstblock = args->tp->t_firstblock;
+               __entry->highest_agno = args->tp->t_highest_agno;
        ),
        TP_printk("dev %d:%d agno 0x%x agbno 0x%x minlen %u maxlen %u mod %u "
                  "prod %u minleft %u total %u alignment %u minalignslop %u "
                  "len %u type %s otype %s wasdel %d wasfromfl %d resv %d "
-                 "datatype 0x%x firstblock 0x%llx",
+                 "datatype 0x%x highest_agno 0x%x",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  __entry->agno,
                  __entry->agbno,
                  __entry->wasfromfl,
                  __entry->resv,
                  __entry->datatype,
-                 (unsigned long long)__entry->firstblock)
+                 __entry->highest_agno)
 )
 
 #define DEFINE_ALLOC_EVENT(name) \
 
        INIT_LIST_HEAD(&ntp->t_items);
        INIT_LIST_HEAD(&ntp->t_busy);
        INIT_LIST_HEAD(&ntp->t_dfops);
-       ntp->t_firstblock = NULLFSBLOCK;
+       ntp->t_highest_agno = NULLAGNUMBER;
 
        ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES);
        ASSERT(tp->t_ticket != NULL);
        INIT_LIST_HEAD(&tp->t_items);
        INIT_LIST_HEAD(&tp->t_busy);
        INIT_LIST_HEAD(&tp->t_dfops);
-       tp->t_firstblock = NULLFSBLOCK;
+       tp->t_highest_agno = NULLAGNUMBER;
 
        error = xfs_trans_reserve(tp, resp, blocks, rtextents);
        if (error == -ENOSPC && want_retry) {
 
        unsigned int            t_rtx_res;      /* # of rt extents resvd */
        unsigned int            t_rtx_res_used; /* # of resvd rt extents used */
        unsigned int            t_flags;        /* misc flags */
-       xfs_fsblock_t           t_firstblock;   /* first block allocated */
+       xfs_agnumber_t          t_highest_agno; /* highest AGF locked */
        struct xlog_ticket      *t_ticket;      /* log mgr ticket */
        struct xfs_mount        *t_mountp;      /* ptr to fs mount struct */
        struct xfs_dquot_acct   *t_dqinfo;      /* acctg info for dquots */