On Thu, Aug 22, 2019 at 01:08:52AM -0700, Christoph Hellwig wrote: > On Thu, Aug 22, 2019 at 02:49:05PM +1000, Dave Chinner wrote: > > On Thu, Aug 22, 2019 at 10:50:02AM +0800, Ming Lei wrote: > > > It isn't correct to blk_rq_aligned() here because 'len' has to be logical block > > > size aligned, instead of DMA aligned only. > > Even if len would have to be a multiple of the sector size, that doesn't > mean calling blk_rq_aligned would be incorrect, just possibly not > catching all issues. In theory, fs bio shouldn't care any DMA limits, which should have been done on splitted bio for doing IO to device. Also .dma_alignment isn't considered in blk_stack_limits(), so in case of DM, MD or other stacking drivers, fs code won't know the accurate .dma_alignment of underlying queues at all, and the stacking driver's queue dma alignment is still 512. Also suppose the check is added, I am a bit curious how fs code handles the failure, so could you explain a bit about the failure handling? Thanks, Ming