On Fri, 2016-03-25 at 03:44 -0700, Christoph Hellwig wrote:
On Thu, Mar 24, 2016 at 05:17:29PM -0600, Vishal Verma wrote:
>
> @@ -72,16 +72,7 @@ xfs_zero_extent(
> struct xfs_mount *mp = ip->i_mount;
> xfs_daddr_t sector = xfs_fsb_to_db(ip, start_fsb);
> sector_t block = XFS_BB_TO_FSBT(mp, sector);
> - ssize_t size = XFS_FSB_TO_B(mp, count_fsb);
>
> - if (IS_DAX(VFS_I(ip)))
> - return
> dax_clear_sectors(xfs_find_bdev_for_inode(VFS_I(ip)),
> - sector, size);
> -
> - /*
> - * let the block layer decide on the fastest method of
> - * implementing the zeroing.
> - */
> return sb_issue_zeroout(mp->m_super, block, count_fsb,
> GFP_NOFS);
While not new: using sb_issue_zeroout in XFS is wrong as it doesn't
account for the RT device. We need the xfs_find_bdev_for_inode and
call blkdev_issue_zeroout directly with the bdev it returned.
Ok, I'll fix and send a v2. Thanks!
>