bvec_merge_fn

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux