On Tue, Aug 27, 2019 at 12:38:28PM -0400, Vivek Goyal wrote:
> For bdev_dax_pgoff
> I'd much rather have the partition offset if there is on in the daxdev
> somehow so that we can get rid of the block device entirely.
IIUC, there is one block_device per partition while there is only one
dax_device for the whole disk. So we can't directly move bdev logical
offset into dax_device.
Well, then we need to find a way to get partitions for dax devices,
as we really should not expect a block device hiding behind a dax
dev. That is just a weird legacy assumption - block device need to
layer on top of the dax device optionally.
We probably could put this in "iomap" and leave it to filesystems to
report offset into dax_dev in iomap that way dax generic code does not
have to deal with it. But that probably will be a bigger change.
And where would the file system get that information from?
Author: Vishal Verma <vishal.l.verma(a)intel.com>
Date: Thu Apr 21 15:13:46 2016 -0400
dax: for truncate/hole-punch, do zeroing through the driver if possible
IIUC, they are doing it so that they can clear gendisk->badblocks list.
So even if there is pure dax way to do it, there will have to some
involvment of block layer to clear gendisk->badblocks list.
Once again we need to move that list to the dax device, as the
assumption that there is a block device associated with the dax dev
I am not sure I fully understand your suggestion. But I am hoping
not a must for these changes to make a progress. For now, I will drop
change to dax_range_is_aligned().
Well, someone needs to clean this mess up, and as you have an actual
real life example of a dax dev without the block device I think the
burden naturally falls on you.