Hi, I realized that if one of the children returns an error during co_block_status() then we should not pass the error immediately to the caller, because that's a situation that Quorum should be able to handle.
The new version of the patch takes the simpler approach of falling back to returning BDRV_BLOCK_DATA, as if Quorum did not implement bdrv_co_block_status(). This will force the caller to try to read the actual data and the normal Quorum voting and error handling process will be used. Berto v3: - Fall back to BDRV_BLOCK_DATA if a child returns an error. v2: https://lists.gnu.org/archive/html/qemu-block/2020-11/msg00259.html - Implement bdrv_co_pwrite_zeroes() for quorum v1: https://lists.gnu.org/archive/html/qemu-block/2020-11/msg00163.html Alberto Garcia (2): quorum: Implement bdrv_co_block_status() quorum: Implement bdrv_co_pwrite_zeroes() block/quorum.c | 70 ++++++++++++++++- tests/qemu-iotests/312 | 155 +++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/312.out | 71 +++++++++++++++++ tests/qemu-iotests/group | 1 + 4 files changed, 295 insertions(+), 2 deletions(-) create mode 100755 tests/qemu-iotests/312 create mode 100644 tests/qemu-iotests/312.out -- 2.20.1