[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 07/18] block/backup: allow use existent copy-bitm
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-devel] [PATCH v3 07/18] block/backup: allow use existent copy-bitmap |
Date: |
Mon, 1 Oct 2018 13:29:17 +0300 |
Allow use existent copy-bitmap to make it possible to synchronize with
externally created fleecing-hook filter which will be introduced soon.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
block/backup.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/block/backup.c b/block/backup.c
index ad143ea735..11aa31a323 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -53,6 +53,7 @@ typedef struct BackupBlockJob {
QLIST_HEAD(, CowRequest) inflight_reqs;
BdrvDirtyBitmap *copy_bitmap;
+ bool copy_bitmap_created;
bool use_copy_range;
int64_t copy_range_size;
@@ -307,7 +308,7 @@ static void backup_clean(Job *job)
blk_unref(s->target);
s->target = NULL;
- if (s->copy_bitmap) {
+ if (s->copy_bitmap_created) {
bdrv_release_dirty_bitmap(blk_bs(s->common.blk), s->copy_bitmap);
s->copy_bitmap = NULL;
}
@@ -686,11 +687,16 @@ BlockJob *backup_job_create(const char *job_id,
BlockDriverState *bs,
job->cluster_size = MAX(BACKUP_CLUSTER_SIZE_DEFAULT, bdi.cluster_size);
}
- if (!x_copy_bitmap) {
+ if (x_copy_bitmap) {
+ job->copy_bitmap = bdrv_find_dirty_bitmap(bs, x_copy_bitmap);
+ } else {
x_copy_bitmap = gen_bitmap_name = id_generate(ID_BLOCK_BITMAP);
}
- job->copy_bitmap = bdrv_create_dirty_bitmap(bs, job->cluster_size,
- x_copy_bitmap, errp);
+ if (!job->copy_bitmap) {
+ job->copy_bitmap = bdrv_create_dirty_bitmap(bs, job->cluster_size,
+ x_copy_bitmap, errp);
+ job->copy_bitmap_created = !!job->copy_bitmap;
+ }
g_free(gen_bitmap_name);
if (!job->copy_bitmap) {
goto error;
--
2.18.0
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, (continued)
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Vladimir Sementsov-Ogievskiy, 2018/10/04
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Kevin Wolf, 2018/10/04
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Vladimir Sementsov-Ogievskiy, 2018/10/04
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Vladimir Sementsov-Ogievskiy, 2018/10/05
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Kevin Wolf, 2018/10/05
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Vladimir Sementsov-Ogievskiy, 2018/10/05
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Eric Blake, 2018/10/05
- Re: [Qemu-devel] [PATCH v3 13/18] block: introduce new filter driver: fleecing-hook, Vladimir Sementsov-Ogievskiy, 2018/10/05
[Qemu-devel] [PATCH v3 17/18] block/backup: tiny refactor backup_job_create, Vladimir Sementsov-Ogievskiy, 2018/10/01
[Qemu-devel] [PATCH v3 11/18] iotests: allow resume_drive by node name, Vladimir Sementsov-Ogievskiy, 2018/10/01
[Qemu-devel] [PATCH v3 07/18] block/backup: allow use existent copy-bitmap,
Vladimir Sementsov-Ogievskiy <=
[Qemu-devel] [PATCH v3 16/18] iotests: test new fleecing-hook driver in context of 222 iotest, Vladimir Sementsov-Ogievskiy, 2018/10/01
[Qemu-devel] [PATCH v3 18/18] block/backup: use fleecing-hook instead of write notifiers, Vladimir Sementsov-Ogievskiy, 2018/10/01
[Qemu-devel] [PATCH v3 15/18] qapi: add x-drop-fleecing qmp command, Vladimir Sementsov-Ogievskiy, 2018/10/01
[Qemu-devel] [PATCH v3 09/18] block: improve should_update_child, Vladimir Sementsov-Ogievskiy, 2018/10/01
[Qemu-devel] [PATCH v3 12/18] iotests: prepare 055 to graph changes during backup job, Vladimir Sementsov-Ogievskiy, 2018/10/01
Re: [Qemu-devel] [PATCH v3 00/18] fleecing-hook driver for backup, Eric Blake, 2018/10/02