From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45941) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fSvAy-0001N2-8F for qemu-devel@nongnu.org; Tue, 12 Jun 2018 22:06:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fSvAx-0001de-3J for qemu-devel@nongnu.org; Tue, 12 Jun 2018 22:06:20 -0400 From: John Snow Date: Tue, 12 Jun 2018 22:06:07 -0400 Message-Id: <20180613020613.1343-5-jsnow@redhat.com> In-Reply-To: <20180613020613.1343-1-jsnow@redhat.com> References: <20180613020613.1343-1-jsnow@redhat.com> Subject: [Qemu-devel] [PATCH v2 04/10] qcow2/bitmap: cache loaded bitmaps List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, qemu-block@nongnu.org Cc: Eric Blake , Vladimir Sementsov-Ogievskiy , Max Reitz , Kevin Wolf , Markus Armbruster , John Snow For bitmaps that we succeeded in loading, we can cache a reference to that object. This will let us iterate over the more convenient form of in-memory bitmaps for qemu-img bitmap manipulation tools. Signed-off-by: John Snow --- block/qcow2-bitmap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c index 5ae9b17928..d94b6bd5cf 100644 --- a/block/qcow2-bitmap.c +++ b/block/qcow2-bitmap.c @@ -981,6 +981,7 @@ bool qcow2_load_dirty_bitmaps(BlockDriverState *bs, Error **errp) if (bitmap == NULL) { goto fail; } + bm->dirty_bitmap = bitmap; if (!(bm->flags & BME_FLAG_AUTO)) { bdrv_disable_dirty_bitmap(bitmap); @@ -1382,6 +1383,7 @@ void qcow2_store_persistent_dirty_bitmaps(BlockDriverState *bs, Error **errp) bm->name = g_strdup(name); QSIMPLEQ_INSERT_TAIL(bm_list, bm, entry); } else { + assert(bitmap == bm->dirty_bitmap); if (!(bm->flags & BME_FLAG_IN_USE)) { error_setg(errp, "Bitmap '%s' already exists in the image", name); -- 2.14.3