Jens, > You will not need a callback in the bio, you will just have a private > end_io function for that particular bio that does the verification. The saving grace for the integrity stuff is that once all the child bios complete, we no longer care about their completion context and we have the parent bio submitted by the filesystem we can use to verify the PI against. For the redundant copy use case, however, I am guessing that the filesystem folks would want the same thing. I.e. verify the structure of the data received once the parent bio completes. However, at that point all the slicing and dicing completion state is lost. And thus there is no way to know that the failure was due to mirror B two layers down the stack. Nor is there any way to retry the I/O without having recorded a completion breadcrumb trail for every child bio. The other approach is the callback where each stacking layer--which knows about redundancy--can do verification of a bio upon completion. However, that suffers from another headache in that the I/O can get arbitrarily sliced and diced in units of 512 bytes. And thus the filesystem verification function would have to be able to verify an arbitrary multiple of 512 bytes at any 512-byte offset inside a submitted bio. That would work, but I don't think that's the pony the filesystem were wishing for? -- Martin K. Petersen Oracle Linux Engineering