block: blk_phys_contig_segment() doesn't account for bounce pages
blk_phys_contig_segment() doesn't account for bouce pages and a later
recalculation that accounts for bounce pages, in blk_rq_check_limits()
while dispatching the request, fails with "over max segments limit".
+ * A high page is never considered part of another segment,
+ * since that might change with the bounce page.
+ if (page_to_pfn(__BVEC_END(bio)->bv_page) > queue_bounce_pfn(q) ||
+ page_to_pfn(__BVEC_START(nxt)->bv_page) > queue_bounce_pfn(q))
+ return 0;
* bio and nxt are contiguous in memory; check if the queue allows
* these two to be merged into one
dm-devel mailing list