xfs
[Top] [All Lists]

Re: [PATCH 4/5] dax: use sb_issue_zerout instead of calling dax_clear_se

To: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Subject: Re: [PATCH 4/5] dax: use sb_issue_zerout instead of calling dax_clear_sectors
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Fri, 25 Mar 2016 03:44:18 -0700
Cc: linux-nvdimm@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-block@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, linux-mm@xxxxxxxxx, Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>, Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>, Dan Williams <dan.j.williams@xxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, Jan Kara <jack@xxxxxxx>, Jens Axboe <axboe@xxxxxx>, Al Viro <viro@xxxxxxxxxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1458861450-17705-5-git-send-email-vishal.l.verma@xxxxxxxxx>
References: <1458861450-17705-1-git-send-email-vishal.l.verma@xxxxxxxxx> <1458861450-17705-5-git-send-email-vishal.l.verma@xxxxxxxxx>
User-agent: Mutt/1.5.24 (2015-08-30)
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.

<Prev in Thread] Current Thread [Next in Thread>