[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 1/9] qapi: Rename 'dirty-bitmap' mode to 'incrementa
From: |
John Snow |
Subject: |
[Qemu-block] [PATCH 1/9] qapi: Rename 'dirty-bitmap' mode to 'incremental' |
Date: |
Thu, 4 Jun 2015 20:20:34 -0400 |
If we wish to make differential backups a feature that's easy to access,
it might be pertinent to rename the "dirty-bitmap" mode to "incremental"
to make it clear what /type/ of backup the dirty-bitmap is helping us
perform.
This is an API breaking change, but 2.4 has not yet gone live,
so we have this flexibility.
Signed-off-by: John Snow <address@hidden>
---
block/backup.c | 10 +++++-----
block/mirror.c | 4 ++--
docs/bitmaps.md | 8 ++++----
include/block/block_int.h | 2 +-
qapi/block-core.json | 8 ++++----
qmp-commands.hx | 6 +++---
tests/qemu-iotests/124 | 10 +++++-----
7 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/block/backup.c b/block/backup.c
index e681f1b..a8f7c43 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -37,7 +37,7 @@ typedef struct CowRequest {
typedef struct BackupBlockJob {
BlockJob common;
BlockDriverState *target;
- /* bitmap for sync=dirty-bitmap */
+ /* bitmap for sync=incremental */
BdrvDirtyBitmap *sync_bitmap;
MirrorSyncMode sync_mode;
RateLimit limit;
@@ -390,7 +390,7 @@ static void coroutine_fn backup_run(void *opaque)
qemu_coroutine_yield();
job->common.busy = true;
}
- } else if (job->sync_mode == MIRROR_SYNC_MODE_DIRTY_BITMAP) {
+ } else if (job->sync_mode == MIRROR_SYNC_MODE_INCREMENTAL) {
ret = backup_run_incremental(job);
} else {
/* Both FULL and TOP SYNC_MODE's require copying.. */
@@ -510,10 +510,10 @@ void backup_start(BlockDriverState *bs, BlockDriverState
*target,
return;
}
- if (sync_mode == MIRROR_SYNC_MODE_DIRTY_BITMAP) {
+ if (sync_mode == MIRROR_SYNC_MODE_INCREMENTAL) {
if (!sync_bitmap) {
error_setg(errp, "must provide a valid bitmap name for "
- "\"dirty-bitmap\" sync mode");
+ "\"incremental\" sync mode");
return;
}
@@ -548,7 +548,7 @@ void backup_start(BlockDriverState *bs, BlockDriverState
*target,
job->on_target_error = on_target_error;
job->target = target;
job->sync_mode = sync_mode;
- job->sync_bitmap = sync_mode == MIRROR_SYNC_MODE_DIRTY_BITMAP ?
+ job->sync_bitmap = sync_mode == MIRROR_SYNC_MODE_INCREMENTAL ?
sync_bitmap : NULL;
job->common.len = len;
job->common.co = qemu_coroutine_create(backup_run);
diff --git a/block/mirror.c b/block/mirror.c
index 58f391a..adf391c 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -709,8 +709,8 @@ void mirror_start(BlockDriverState *bs, BlockDriverState
*target,
bool is_none_mode;
BlockDriverState *base;
- if (mode == MIRROR_SYNC_MODE_DIRTY_BITMAP) {
- error_setg(errp, "Sync mode 'dirty-bitmap' not supported");
+ if (mode == MIRROR_SYNC_MODE_INCREMENTAL) {
+ error_setg(errp, "Sync mode 'incremental' not supported");
return;
}
is_none_mode = mode == MIRROR_SYNC_MODE_NONE;
diff --git a/docs/bitmaps.md b/docs/bitmaps.md
index a60fee1..9fd8ea6 100644
--- a/docs/bitmaps.md
+++ b/docs/bitmaps.md
@@ -206,7 +206,7 @@ full backup as a backing image.
"bitmap": "bitmap0",
"target": "incremental.0.img",
"format": "qcow2",
- "sync": "dirty-bitmap",
+ "sync": "incremental",
"mode": "existing"
}
}
@@ -231,7 +231,7 @@ full backup as a backing image.
"bitmap": "bitmap0",
"target": "incremental.1.img",
"format": "qcow2",
- "sync": "dirty-bitmap",
+ "sync": "incremental",
"mode": "existing"
}
}
@@ -271,7 +271,7 @@ full backup as a backing image.
"bitmap": "bitmap0",
"target": "incremental.0.img",
"format": "qcow2",
- "sync": "dirty-bitmap",
+ "sync": "incremental",
"mode": "existing"
}
}
@@ -304,7 +304,7 @@ full backup as a backing image.
"bitmap": "bitmap0",
"target": "incremental.0.img",
"format": "qcow2",
- "sync": "dirty-bitmap",
+ "sync": "incremental",
"mode": "existing"
}
}
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 5ca5f15..656abcf 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -613,7 +613,7 @@ void mirror_start(BlockDriverState *bs, BlockDriverState
*target,
* @target: Block device to write to.
* @speed: The maximum speed, in bytes per second, or 0 for unlimited.
* @sync_mode: What parts of the disk image should be copied to the
destination.
- * @sync_bitmap: The dirty bitmap if sync_mode is
MIRROR_SYNC_MODE_DIRTY_BITMAP.
+ * @sync_bitmap: The dirty bitmap if sync_mode is MIRROR_SYNC_MODE_INCREMENTAL.
* @on_source_error: The action to take upon error reading from the source.
* @on_target_error: The action to take upon error writing to the target.
* @cb: Completion function for the job.
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 8411d4f..0061713 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -534,12 +534,12 @@
#
# @none: only copy data written from now on
#
-# @dirty-bitmap: only copy data described by the dirty bitmap. Since: 2.4
+# @incremental: only copy data described by the dirty bitmap. Since: 2.4
#
# Since: 1.3
##
{ 'enum': 'MirrorSyncMode',
- 'data': ['top', 'full', 'none', 'dirty-bitmap'] }
+ 'data': ['top', 'full', 'none', 'incremental'] }
##
# @BlockJobType:
@@ -722,8 +722,8 @@
#
# @speed: #optional the maximum speed, in bytes per second
#
-# @bitmap: #optional the name of dirty bitmap if sync is "dirty-bitmap".
-# Must be present if sync is "dirty-bitmap", must NOT be present
+# @bitmap: #optional the name of dirty bitmap if sync is "incremental".
+# Must be present if sync is "incremental", must NOT be present
# otherwise. (Since 2.4)
#
# @on-source-error: #optional the action to take on an error on the source,
diff --git a/qmp-commands.hx b/qmp-commands.hx
index a6029a2..1e74188 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1137,10 +1137,10 @@ Arguments:
(json-string, optional)
- "sync": what parts of the disk image should be copied to the destination;
possibilities include "full" for all the disk, "top" for only the sectors
- allocated in the topmost image, "dirty-bitmap" for only the dirty sectors in
+ allocated in the topmost image, "incremental" for only the dirty sectors in
the bitmap, or "none" to only replicate new I/O (MirrorSyncMode).
-- "bitmap": dirty bitmap name for sync==dirty-bitmap. Must be present if sync
- is "dirty-bitmap", must NOT be present otherwise.
+- "bitmap": dirty bitmap name for sync==incremental. Must be present if sync
+ is "incremental", must NOT be present otherwise.
- "mode": whether and how QEMU should create a new image
(NewImageMode, optional, default 'absolute-paths')
- "speed": the maximum speed, in bytes per second (json-int, optional)
diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124
index 772edd4..07b1a47 100644
--- a/tests/qemu-iotests/124
+++ b/tests/qemu-iotests/124
@@ -207,7 +207,7 @@ class TestIncrementalBackup(iotests.QMPTestCase):
target = self.prepare_backup(bitmap, parent)
res = self.do_qmp_backup(device=bitmap.drive['id'],
- sync='dirty-bitmap', bitmap=bitmap.name,
+ sync='incremental', bitmap=bitmap.name,
format=bitmap.drive['fmt'], target=target,
mode='existing')
if not res:
@@ -448,10 +448,10 @@ class TestIncrementalBackup(iotests.QMPTestCase):
# Ask for a new incremental backup per-each drive,
# expecting drive1's backup to fail:
transaction = [
- transaction_drive_backup(drive0['id'], target0,
sync='dirty-bitmap',
+ transaction_drive_backup(drive0['id'], target0, sync='incremental',
format=drive0['fmt'], mode='existing',
bitmap=dr0bm0.name),
- transaction_drive_backup(drive1['id'], target1,
sync='dirty-bitmap',
+ transaction_drive_backup(drive1['id'], target1, sync='incremental',
format=drive1['fmt'], mode='existing',
bitmap=dr1bm0.name),
]
@@ -497,7 +497,7 @@ class TestIncrementalBackup(iotests.QMPTestCase):
self.assert_no_active_block_jobs()
self.files.append(self.err_img)
result = self.vm.qmp('drive-backup', device=self.drives[0]['id'],
- sync='dirty-bitmap', format=self.drives[0]['fmt'],
+ sync='incremental', format=self.drives[0]['fmt'],
target=self.err_img)
self.assert_qmp(result, 'error/class', 'GenericError')
@@ -506,7 +506,7 @@ class TestIncrementalBackup(iotests.QMPTestCase):
self.assert_no_active_block_jobs()
self.files.append(self.err_img)
result = self.vm.qmp('drive-backup', device=self.drives[0]['id'],
- sync='dirty-bitmap', bitmap='unknown',
+ sync='incremental', bitmap='unknown',
format=self.drives[0]['fmt'], target=self.err_img)
self.assert_qmp(result, 'error/class', 'GenericError')
--
2.1.0
- [Qemu-block] [PATCH 0/9] block: add differential backup support, John Snow, 2015/06/04
- [Qemu-block] [PATCH 2/9] hbitmap: add hbitmap_copy, John Snow, 2015/06/04
- [Qemu-block] [PATCH 3/9] block: add bdrv_copy_dirty_bitmap, John Snow, 2015/06/04
- [Qemu-block] [PATCH 1/9] qapi: Rename 'dirty-bitmap' mode to 'incremental',
John Snow <=
- [Qemu-block] [PATCH 4/9] qapi: add Copy data type for bitmaps, John Snow, 2015/06/04
- [Qemu-block] [PATCH 7/9] block: add differential backup mode, John Snow, 2015/06/04
- [Qemu-block] [PATCH 5/9] qmp: add qmp cmd block-dirty-bitmap-copy, John Snow, 2015/06/04
- [Qemu-block] [PATCH 6/9] qmp: add block-dirty-bitmap-copy transaction, John Snow, 2015/06/04
- [Qemu-block] [PATCH 9/9] iotests: add differential backup test, John Snow, 2015/06/04
- [Qemu-block] [PATCH 8/9] iotests: 124: support differential backups, John Snow, 2015/06/04