Re: [PATCH v5 17/21] libnvdimm: infrastructure for btt devices

Matthew Wilcox
2015-06-10T18:46:28Z

On Tue, Jun 09, 2015 at 08:42:00AM +0200, Christoph Hellwig wrote:
> > The BTT driver is the initial first consumer of this mechanism to allow
> > layering atomic sector update guarantees on top of nd_io capable
> > libnvdimm-block-devices, or their partitions.
>
> As mentioned during the last time of the review the layering here
> is complete broken. If you expose additional capabilities from a block
> device do it at the block device level. That is enhance the rw_page
> callback to allo byte sized access, add a capability flag on the queue,
> etc.

Don't screw up rw_page. The point of rw_page is to read or write a page
cache page. It can sleep, and it indicates success by using the page
flags. Don't try and scqueeze rw_bytes into it. If you want rw_bytes
to be a queue operation, that's one thing, but don't mess with rw_page.