On 22.11.2016 18:26, Vladimir Sementsov-Ogievskiy wrote: > New field BdrvDirtyBitmap.persistent means, that bitmap should be saved > on bdrv_close, using format driver. Format driver should maintain bitmap > storing. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > --- > block.c | 31 +++++++++++++++++++++++++++++++ > block/dirty-bitmap.c | 26 ++++++++++++++++++++++++++ > block/qcow2-bitmap.c | 1 + > include/block/block.h | 1 + > include/block/block_int.h | 2 ++ > include/block/dirty-bitmap.h | 6 ++++++ > 6 files changed, 67 insertions(+) > > diff --git a/block.c b/block.c > index 450379c..4e1f16a 100644 > --- a/block.c > +++ b/block.c > @@ -2321,6 +2321,7 @@ void bdrv_reopen_abort(BDRVReopenState *reopen_state) > static void bdrv_close(BlockDriverState *bs) > { > BdrvAioNotifier *ban, *ban_next; > + Error *local_err = NULL; > > assert(!bs->job); > assert(!bs->refcnt); > @@ -2329,6 +2330,11 @@ static void bdrv_close(BlockDriverState *bs) > bdrv_flush(bs); > bdrv_drain(bs); /* in case flush left pending I/O */ > > + bdrv_store_persistent_dirty_bitmaps(bs, &local_err); > + if (local_err != NULL) { > + error_report_err(local_err); > + error_report("Persistent bitmaps are lost");
:C Reviewed-by: Max Reitz <mre...@redhat.com> But could you maybe add at least the node name to the error message? Max > + } > bdrv_release_named_dirty_bitmaps(bs); > assert(QLIST_EMPTY(&bs->dirty_bitmaps));
signature.asc
Description: OpenPGP digital signature