Hi,After bio splitting is introduced, the splitted bio can be fast-cloned, which is correct because biovecs has become immutable since v3.13. Unfortunately bio_will_gap() isn't ready for this kind of change, because it figures out the last bvec via 'bi_io_vec[prev->bi_vcnt - 1]' directly. It is observed that lots of BIOs are merges even the virt boundary limit is violated, and the issue is reported from Sagi Grimberg.
This set makes the virt_boundary violation go away...