On Tue, Nov 27, 2018 at 11:37:22PM -0800, Christoph Hellwig wrote: > On Wed, Nov 28, 2018 at 04:33:03PM +1100, Dave Chinner wrote: > > One thing that is going to make this more complex at the XFS layer > > is discontiguous buffers. They require multiple IOs (and therefore > > bios) and so we are going to need to ensure that all the bios use > > the same bi_rw_hint. > > Well, in case of raid 1 the load balancing code might actually > map different bios to different initial legs. What we really need > is to keep the 'index' or each bio. One good way to archive that > is to just reuse the bio for the retry instead of allocating a new one. Not sure that is practical, because by the time we run the verifier that discovers the error we've already released and freed all the bios. And we don't know when we complete the individual bios whether to kep it or not as the failure may occur in a bio that has not yet completed. Maybe we should be chaining bios for discontig buffers rather than submitting them individually - that keeps the whole chain around until all bios in the chain have completed, right? Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx