mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 06:43:09 +00:00
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 3dc2916107
("dax: use sb_issue_zerout instead of calling dax_clear_sectors").
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
8b9b261594
commit
792ef2745d
@ -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,15 +54,10 @@ 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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user