/*
  * Routine to zero an extent on disk allocated to the specific inode.
- *
- * The VFS functions take a linearised filesystem block offset, so we have to
- * convert the sparse xfs fsb to the right format first.
- * VFS types are real funky, too.
  */
 int
 xfs_zero_extent(
        xfs_fsblock_t           start_fsb,
        xfs_off_t               count_fsb)
 {
-       struct xfs_mount        *mp = ip->i_mount;
-       struct xfs_buftarg      *target = xfs_inode_buftarg(ip);
-       xfs_daddr_t             sector = xfs_fsb_to_db(ip, start_fsb);
-       sector_t                block = XFS_BB_TO_FSBT(mp, sector);
-
-       return blkdev_issue_zeroout(target->bt_bdev,
-               block << (mp->m_super->s_blocksize_bits - 9),
-               count_fsb << (mp->m_super->s_blocksize_bits - 9),
-               GFP_KERNEL, 0);
+       return blkdev_issue_zeroout(xfs_inode_buftarg(ip)->bt_bdev,
+                       xfs_fsb_to_db(ip, start_fsb),
+                       XFS_FSB_TO_BB(ip->i_mount, count_fsb),
+                       GFP_KERNEL, 0);
 }
 
 /*