]> git.proxmox.com Git - mirror_qemu.git/commit - block/quorum.c
block/quorum: Provide .bdrv_co_flush instead of .bdrv_co_flush_to_disk
authorLukas Straub <lukasstraub2@web.de>
Tue, 18 May 2021 11:42:14 +0000 (13:42 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 2 Jun 2021 12:23:20 +0000 (14:23 +0200)
commit5529b02da2dcd1ef6bc6cd42d4fbfb537fe2276f
treec5252dcc187ab20c8d68a6f61ceb2db48890a3fd
parentdd2db39d78431ab5a0b78777afaab3d61e94533e
block/quorum: Provide .bdrv_co_flush instead of .bdrv_co_flush_to_disk

The quorum block driver uses a custom flush callback to handle the
case when some children return io errors. In that case it still
returns success if enough children are healthy.
However, it provides it as the .bdrv_co_flush_to_disk callback, not
as .bdrv_co_flush. This causes the block layer to do it's own
generic flushing for the children instead, which doesn't handle
errors properly.

Fix this by providing .bdrv_co_flush instead of
.bdrv_co_flush_to_disk so the block layer uses the custom flush
callback.

Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Reported-by: Minghao Yuan <meeho@qq.com>
Message-Id: <20210518134214.11ccf05f@gecko.fritz.box>
Tested-by: Zhang Chen <chen.zhang@intel.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/quorum.c