I have replaced a macro with the new one, generally it should work as for_each for bios (block input output chunk). Generally bios are created by filesystem and are chunks of information which should be saved in memory. Than this bios are naturally passed to bio-layer which is layer of abstraction in linux which handles saving them into the memory. Dattobd spies on this saves and for every bio which should be saved into a memory, creates a copy which is than saved into a cow file. So macro which we used to use, which we thought should work as for_each, didn't work correctly on LVM because it can manage bios differently.
I have replaced a macro with the new one, generally it should work as for_each for bios (block input output chunk). Generally bios are created by filesystem and are chunks of information which should be saved in memory. Than this bios are naturally passed to bio-layer which is layer of abstraction in linux which handles saving them into the memory. Dattobd spies on this saves and for every bio which should be saved into a memory, creates a copy which is than saved into a cow file. So macro which we used to use, which we thought should work as for_each, didn't work correctly on LVM because it can manage bios differently.
Source of knowledge: https://www.dcache.org/manuals/2012/workshop/slides/chris-block-devices.pdf