On Thu, Nov 28, 2024 at 08:18:16AM +0900, Damien Le Moal wrote: > The BIO that failed is not recovered. The user will see the failure. The error > recovery report zones is all about avoiding more failures of plugged zone append > BIOs behind that failed BIO. These can succeed with the error recovery. > > So sure, we can fail all BIOs. The user will see more failures. If that is OK, > that's easy to do. But in the end, that is not a solution because we still need What is the scenario where only one I/O will fail? The time of dust on a sector failign writes to just sector are long gone these days. So unless we can come up with a scenario where: - one I/O will fail, but others won't - this matters to the writer optimizing for being able to just fail a single I/O seems like a wasted effort. > to get an updated zone write pointer to be able to restart zone append > emulation. Otherwise, we are in the dark and will not know where to send the > regular writes emulating zone append. That means that we still need to issue a > zone report and that is racing with queue freeze and reception of a new BIO. We > cannot have new BIOs "wait" for the zone report as that would create a hang > situation again if a queue freeze is started between reception of the new BIO > and the zone report. Do we fail these new BIOs too ? That seems extreme. Just add a "need resync" flag and do the report zones before issuing the next write?