[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v14 3/8] Backup: clear all bitmap when doing blo
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v14 3/8] Backup: clear all bitmap when doing block checkpoint |
Date: |
Wed, 27 Jan 2016 16:05:41 +0000 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Wed, Jan 13, 2016 at 05:18:27PM +0800, Changlong Xie wrote:
> diff --git a/blockjob.c b/blockjob.c
> index 80adb9d..0c8edfe 100644
> --- a/blockjob.c
> +++ b/blockjob.c
> @@ -533,3 +533,14 @@ void block_job_txn_add_job(BlockJobTxn *txn, BlockJob
> *job)
> QLIST_INSERT_HEAD(&txn->jobs, job, txn_list);
> block_job_txn_ref(txn);
> }
> +
> +void block_job_do_checkpoint(BlockJob *job, Error **errp)
> +{
> + if (!job->driver->do_checkpoint) {
> + error_setg(errp, "The job %s doesn't support block checkpoint",
> + BlockJobType_lookup[job->driver->job_type]);
> + return;
> + }
> +
> + job->driver->do_checkpoint(job, errp);
> +}
> diff --git a/include/block/blockjob.h b/include/block/blockjob.h
> index d84ccd8..abdba7c 100644
> --- a/include/block/blockjob.h
> +++ b/include/block/blockjob.h
> @@ -70,6 +70,9 @@ typedef struct BlockJobDriver {
> * never both.
> */
> void (*abort)(BlockJob *job);
> +
> + /** Optional callback for job types that support checkpoint. */
> + void (*do_checkpoint)(BlockJob *job, Error **errp);
The COLO/replication-specific callbacks have been moved out of
BlockDriver into their own replication struct. Similar reasoning
applies to BlockJobDriver:
The do_checkpoint() callback is only implemented by one type of job and
its purpose is related to COLO rather than jobs. This is a strong
indication that this shouldn't be part of the generic BlockJobDriver
struct.
Please drop changes to the generic blockjob interface. Instead, make
backup_do_checkpoint() public and add assert(job->driver->type ==
BLOCK_JOB_TYPE_BACKUP) into the function.
Then the replication filter can call backup_do_checkpoint() directly.
Stefan
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH v14 1/8] unblock backup operations in backing file, (continued)
- [Qemu-devel] [PATCH v14 1/8] unblock backup operations in backing file, Changlong Xie, 2016/01/13
- [Qemu-devel] [PATCH v14 6/8] auto complete active commit, Changlong Xie, 2016/01/13
- [Qemu-devel] [PATCH v14 7/8] Implement new driver for block replication, Changlong Xie, 2016/01/13
- [Qemu-devel] [PATCH v14 2/8] Store parent BDS in BdrvChild, Changlong Xie, 2016/01/13
- [Qemu-devel] [PATCH v14 8/8] support replication driver in blockdev-add, Changlong Xie, 2016/01/13
- [Qemu-devel] [PATCH v14 3/8] Backup: clear all bitmap when doing block checkpoint, Changlong Xie, 2016/01/13
- Re: [Qemu-devel] [PATCH v14 3/8] Backup: clear all bitmap when doing block checkpoint,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH v14 4/8] Allow creating backup jobs when opening BDS, Changlong Xie, 2016/01/13
- [Qemu-devel] [PATCH v14 5/8] docs: block replication's description, Changlong Xie, 2016/01/13
- Re: [Qemu-devel] [PATCH v14 0/8] Block replication for continuous checkpoints, Changlong Xie, 2016/01/13
- Re: [Qemu-devel] [PATCH v14 0/8] Block replication for continuous checkpoints, Wen Congyang, 2016/01/24