[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v21 02/10] Backup: clear all bitmap when doing block
From: |
Changlong Xie |
Subject: |
[Qemu-block] [PATCH v21 02/10] Backup: clear all bitmap when doing block checkpoint |
Date: |
Wed, 6 Jul 2016 13:45:50 +0800 |
From: Wen Congyang <address@hidden>
Signed-off-by: Wen Congyang <address@hidden>
Signed-off-by: zhanghailiang <address@hidden>
Signed-off-by: Gonglei <address@hidden>
Signed-off-by: Changlong Xie <address@hidden>
---
block/backup.c | 18 ++++++++++++++++++
include/block/block_backup.h | 3 +++
2 files changed, 21 insertions(+)
create mode 100644 include/block/block_backup.h
diff --git a/block/backup.c b/block/backup.c
index f87f8d5..1964a5a 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -17,6 +17,7 @@
#include "block/block.h"
#include "block/block_int.h"
#include "block/blockjob.h"
+#include "block/block_backup.h"
#include "qapi/error.h"
#include "qapi/qmp/qerror.h"
#include "qemu/ratelimit.h"
@@ -253,6 +254,23 @@ static void backup_attached_aio_context(BlockJob *job,
AioContext *aio_context)
blk_set_aio_context(s->target, aio_context);
}
+void backup_do_checkpoint(BlockJob *job, Error **errp)
+{
+ BackupBlockJob *backup_job = container_of(job, BackupBlockJob, common);
+ int64_t len;
+
+ assert(job->driver->job_type == BLOCK_JOB_TYPE_BACKUP);
+
+ if (backup_job->sync_mode != MIRROR_SYNC_MODE_NONE) {
+ error_setg(errp, "The backup job only supports block checkpoint in"
+ " sync=none mode");
+ return;
+ }
+
+ len = DIV_ROUND_UP(backup_job->common.len, backup_job->cluster_size);
+ bitmap_zero(backup_job->done_bitmap, len);
+}
+
static const BlockJobDriver backup_job_driver = {
.instance_size = sizeof(BackupBlockJob),
.job_type = BLOCK_JOB_TYPE_BACKUP,
diff --git a/include/block/block_backup.h b/include/block/block_backup.h
new file mode 100644
index 0000000..3753bcb
--- /dev/null
+++ b/include/block/block_backup.h
@@ -0,0 +1,3 @@
+#include "block/block_int.h"
+
+void backup_do_checkpoint(BlockJob *job, Error **errp);
--
1.9.3
- [Qemu-block] [PATCH v21 00/10] Block replication for continuous checkpoints, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 01/10] unblock backup operations in backing file, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 04/10] Link backup into block core, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 02/10] Backup: clear all bitmap when doing block checkpoint,
Changlong Xie <=
- [Qemu-block] [PATCH v21 03/10] Backup: export interfaces for extra serialization, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 06/10] auto complete active commit, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 10/10] support replication driver in blockdev-add, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 07/10] Introduce new APIs to do replication operation, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 05/10] docs: block replication's description, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 08/10] Implement new driver for block replication, Changlong Xie, 2016/07/06
- [Qemu-block] [PATCH v21 09/10] tests: add unit test case for replication, Changlong Xie, 2016/07/06
- Re: [Qemu-block] [PATCH v21 00/10] Block replication for continuous checkpoints, wangweiwei, 2016/07/12