On Mon, 2016-06-20 at 14:01 -0600, Kani, Toshimitsu wrote: > On Mon, 2016-06-20 at 15:52 -0400, Mike Snitzer wrote: > > > > On Mon, Jun 20 2016 at 3:40pm -0400, > > Mike Snitzer <snitzer@xxxxxxxxxx> wrote: > > : > > > If I don't use XFS, and only issue IO directly to the /dev/pmem/lv, I > > > don't see this corruption. > > > > I did the same test with ext4 instead of xfs and it resulted in the same > > type of systemic corruption (lvm2 metadata corrupted too): > > : > I will look into the issue. Hi Mike, Can you fold the following patch to the dm-linear patch? Thanks, -Tsohi ------ Subject: [PATCH] dm-linear: Fix partition handling for DAX Partition handling was missing in linear_direct_access(). Call bdev_direct_access(), instead of directly calling target direct_access function. Signed-off-by: Toshi Kani <toshi.kani@xxxxxxx> --- drivers/md/dm-linear.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c index 325aa06..38323e4 100644 --- a/drivers/md/dm-linear.c +++ b/drivers/md/dm-linear.c @@ -148,10 +148,16 @@ static long linear_direct_access(struct dm_target *ti, sector_t sector, { struct linear_c *lc = ti->private; struct block_device *bdev = lc->dev->bdev; - const struct block_device_operations *bd_ops = bdev->bd_disk->fops; - - return bd_ops->direct_access(bdev, linear_map_sector(ti, sector), - kaddr, pfn, size); + struct blk_dax_ctl dax = { + .sector = linear_map_sector(ti, sector), + .size = size, + }; + long ret; + + ret = bdev_direct_access(bdev, &dax); + *kaddr = dax.addr; + *pfn = dax.pfn; + return ret; } static struct target_type linear_target = { -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel