Hi See this bug: https://bugzilla.redhat.com/show_bug.cgi?id=223947 It shows that md-raid doesn't split bio and it relies on bios not being larger than what bvec_merge_fn allows. If you split a small bio that crosses md-raid stripe bounday, it aborts it with the errors shown in the bug report. So, unfortunatelly, bvec_merge_fn is not advisory. I think it would be better if it were, but it isn't. As you talked about "accepting any size bio in dm and always process it correctly", this would mean two-level splitting: 1. split it on target boundary and t->split_io (as it is being done now) 2. submit it to the target 3. the target decides, where the bio goes 4. check the limits for the destination device and its bvec_merge_fn, and maybe split the bio second time, to match it. (this split can't be done at step 1, because at step 1 we don't know the destination device) Mikulas -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel