Commit 792ef274 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Carlos Maiolino
Browse files

xfs: simplify sector number calculation in xfs_zero_extent



xfs_zero_extent does some really odd gymnstics to calculate the block
layer sectors numbers passed to blkdev_issue_zeroout.  This is because it
used to call sb_issue_zeroout and the calculations in that helper got
open coded here in the rather misleadingly named commit 3dc29161
("dax: use sb_issue_zerout instead of calling dax_clear_sectors").

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: default avatarCarlos Maiolino <cem@kernel.org>
parent 8b9b2615
Loading
Loading
Loading
Loading
+4 −13
Original line number Diff line number Diff line
@@ -47,10 +47,6 @@ xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb)

/*
 * 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(
@@ -58,14 +54,9 @@ 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),
	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);
}