XFS_STATS_INC(mp, xs_blk_mapw);
 
-       if (*firstblock == NULLFSBLOCK) {
+       if (!tp || *firstblock == NULLFSBLOCK) {
                if (XFS_IFORK_FORMAT(ip, whichfork) == XFS_DINODE_FMT_BTREE)
                        bma.minleft = be16_to_cpu(ifp->if_broot->bb_level) + 1;
                else
 
        xfs_fileoff_t                   offset_fsb,
        xfs_filblks_t                   count_fsb)
 {
-       xfs_fsblock_t                   first_block = NULLFSBLOCK;
        int                             nimaps = 1;
 
        if (imap->br_state == XFS_EXT_NORM)
        if (imap->br_blockcount == 0)
                return 0;
        return xfs_bmapi_write(NULL, ip, imap->br_startoff, imap->br_blockcount,
-                       XFS_BMAPI_COWFORK | XFS_BMAPI_CONVERT, &first_block,
-                       0, imap, &nimaps);
+                       XFS_BMAPI_COWFORK | XFS_BMAPI_CONVERT, NULL, 0, imap,
+                       &nimaps);
 }
 
 /* Convert all of the unwritten CoW extents in a file's range to real ones. */
        xfs_fileoff_t           end_fsb = XFS_B_TO_FSB(mp, offset + count);
        xfs_filblks_t           count_fsb = end_fsb - offset_fsb;
        struct xfs_bmbt_irec    imap;
-       xfs_fsblock_t           first_block = NULLFSBLOCK;
        int                     nimaps = 1, error = 0;
 
        ASSERT(count != 0);
        xfs_ilock(ip, XFS_ILOCK_EXCL);
        error = xfs_bmapi_write(NULL, ip, offset_fsb, count_fsb,
                        XFS_BMAPI_COWFORK | XFS_BMAPI_CONVERT |
-                       XFS_BMAPI_CONVERT_ONLY, &first_block, 0, &imap,
-                       &nimaps);
+                       XFS_BMAPI_CONVERT_ONLY, NULL, 0, &imap, &nimaps);
        xfs_iunlock(ip, XFS_ILOCK_EXCL);
        return error;
 }