On Thu, Jun 18, 2020 at 18:56:15 -0500, Eric Blake wrote:
On 6/15/20 12:10 PM, Peter Krempa wrote:
> Reuse qemuBlockGetBitmapMergeActions which allows to remove the ad-hoc
s/allows to remove/allows the removal of/
> implementatio of bitmap merging for block commit. The new approach is
implementation
> way simpler and more robust and also allows us to get rid of the
> disabling of bitmaps done prior to the start as we actually do want to
> update the bitmaps in the base.
What if the commit fails, but we have merged in portions of the bitmap? In
practice, this merely means that a future attempt to use that bitmap in the
backing file will now copy more data than previously necessary; what's more,
if we try a commit again (if the failure was transient), we'll be setting
those same bits again. So yeah, I don't think it hurts to not disable the
bitmaps in the backing files.
Well actually the bitmaps are merged only after the commit has finished
so we update them only once it's done. In the meanwhile all of them
which were present in the image before will get auto-updated with the
commited blocks which is IMO also a good thing.
Regardless, from the full chain point of view it will still look correct
and after a commit failure, the partial chain between the comitted
images is not valid anyways so we can't do much.