if (xfs_bmap_needs_btree(bma->ip, whichfork)) {
                        error = xfs_bmap_extents_to_btree(bma->tp, bma->ip,
-                                       bma->firstblock, bma->dfops,
+                                       bma->firstblock, bma->tp->t_dfops,
                                        &bma->cur, 1, &tmp_rval, whichfork);
                        rval |= tmp_rval;
                        if (error)
 
                if (xfs_bmap_needs_btree(bma->ip, whichfork)) {
                        error = xfs_bmap_extents_to_btree(bma->tp, bma->ip,
-                               bma->firstblock, bma->dfops, &bma->cur, 1,
+                               bma->firstblock, bma->tp->t_dfops, &bma->cur, 1,
                                &tmp_rval, whichfork);
                        rval |= tmp_rval;
                        if (error)
 
                if (xfs_bmap_needs_btree(bma->ip, whichfork)) {
                        error = xfs_bmap_extents_to_btree(bma->tp, bma->ip,
-                                       bma->firstblock, bma->dfops, &bma->cur,
-                                       1, &tmp_rval, whichfork);
+                                       bma->firstblock, bma->tp->t_dfops,
+                                       &bma->cur, 1, &tmp_rval, whichfork);
                        rval |= tmp_rval;
                        if (error)
                                goto done;
 
        /* add reverse mapping unless caller opted out */
        if (!(bma->flags & XFS_BMAPI_NORMAP)) {
-               error = xfs_rmap_map_extent(mp, bma->dfops, bma->ip,
+               error = xfs_rmap_map_extent(mp, bma->tp->t_dfops, bma->ip,
                                whichfork, new);
                if (error)
                        goto done;
 
                ASSERT(bma->cur == NULL);
                error = xfs_bmap_extents_to_btree(bma->tp, bma->ip,
-                               bma->firstblock, bma->dfops, &bma->cur,
+                               bma->firstblock, bma->tp->t_dfops, &bma->cur,
                                da_old > 0, &tmp_logflags, whichfork);
                bma->logflags |= tmp_logflags;
                if (error)
                        error = xfs_bmap_btalloc_nullfb(ap, &args, &blen);
                if (error)
                        return error;
-       } else if (ap->dfops->dop_low) {
+       } else if (ap->tp->t_dfops->dop_low) {
                if (xfs_inode_is_filestream(ap->ip))
                        args.type = XFS_ALLOCTYPE_FIRST_AG;
                else
         * is >= the stripe unit and the allocation offset is
         * at the end of file.
         */
-       if (!ap->dfops->dop_low && ap->aeof) {
+       if (!ap->tp->t_dfops->dop_low && ap->aeof) {
                if (!ap->offset) {
                        args.alignment = stripe_align;
                        atype = args.type;
                args.total = ap->minlen;
                if ((error = xfs_alloc_vextent(&args)))
                        return error;
-               ap->dfops->dop_low = true;
+               ap->tp->t_dfops->dop_low = true;
        }
        if (args.fsbno != NULLFSBLOCK) {
                /*
        if ((ifp->if_flags & XFS_IFBROOT) && !bma->cur) {
                bma->cur = xfs_bmbt_init_cursor(mp, bma->tp, bma->ip, whichfork);
                bma->cur->bc_private.b.firstblock = *bma->firstblock;
-               bma->cur->bc_private.b.dfops = bma->dfops;
+               bma->cur->bc_private.b.dfops = bma->tp->t_dfops;
        }
        /*
         * Bump the number of extents we've allocated
        else
                error = xfs_bmap_add_extent_hole_real(bma->tp, bma->ip,
                                whichfork, &bma->icur, &bma->cur, &bma->got,
-                               bma->firstblock, bma->dfops, &bma->logflags,
-                               bma->flags);
+                               bma->firstblock, bma->tp->t_dfops,
+                               &bma->logflags, bma->flags);
 
        bma->logflags |= tmp_logflags;
        if (error)
                bma->cur = xfs_bmbt_init_cursor(bma->ip->i_mount, bma->tp,
                                        bma->ip, whichfork);
                bma->cur->bc_private.b.firstblock = *bma->firstblock;
-               bma->cur->bc_private.b.dfops = bma->dfops;
+               bma->cur->bc_private.b.dfops = bma->tp->t_dfops;
        }
        mval->br_state = (mval->br_state == XFS_EXT_UNWRITTEN)
                                ? XFS_EXT_NORM : XFS_EXT_UNWRITTEN;
 
        error = xfs_bmap_add_extent_unwritten_real(bma->tp, bma->ip, whichfork,
                        &bma->icur, &bma->cur, mval, bma->firstblock,
-                       bma->dfops, &tmp_logflags);
+                       bma->tp->t_dfops, &tmp_logflags);
        /*
         * Log the inode core unconditionally in the unwritten extent conversion
         * path because the conversion might not have done so (e.g., if the
        bma.ip = ip;
        bma.total = total;
        bma.datatype = 0;
-       bma.dfops = tp ? tp->t_dfops : NULL;
        bma.firstblock = firstblock;
+       ASSERT(!tp || tp->t_dfops);
 
        while (bno < end && n < *nmap) {
                bool                    need_alloc = false, wasdelay = false;