block/mirror: add block job creation flags
Add support for taking and passing forward job creation flags. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Message-id: 20180906130225.5118-3-jsnow@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
5360782d08
commit
a1999b3348
@ -1639,7 +1639,8 @@ fail:
|
|||||||
|
|
||||||
void mirror_start(const char *job_id, BlockDriverState *bs,
|
void mirror_start(const char *job_id, BlockDriverState *bs,
|
||||||
BlockDriverState *target, const char *replaces,
|
BlockDriverState *target, const char *replaces,
|
||||||
int64_t speed, uint32_t granularity, int64_t buf_size,
|
int creation_flags, int64_t speed,
|
||||||
|
uint32_t granularity, int64_t buf_size,
|
||||||
MirrorSyncMode mode, BlockMirrorBackingMode backing_mode,
|
MirrorSyncMode mode, BlockMirrorBackingMode backing_mode,
|
||||||
BlockdevOnError on_source_error,
|
BlockdevOnError on_source_error,
|
||||||
BlockdevOnError on_target_error,
|
BlockdevOnError on_target_error,
|
||||||
@ -1655,7 +1656,7 @@ void mirror_start(const char *job_id, BlockDriverState *bs,
|
|||||||
}
|
}
|
||||||
is_none_mode = mode == MIRROR_SYNC_MODE_NONE;
|
is_none_mode = mode == MIRROR_SYNC_MODE_NONE;
|
||||||
base = mode == MIRROR_SYNC_MODE_TOP ? backing_bs(bs) : NULL;
|
base = mode == MIRROR_SYNC_MODE_TOP ? backing_bs(bs) : NULL;
|
||||||
mirror_start_job(job_id, bs, JOB_DEFAULT, target, replaces,
|
mirror_start_job(job_id, bs, creation_flags, target, replaces,
|
||||||
speed, granularity, buf_size, backing_mode,
|
speed, granularity, buf_size, backing_mode,
|
||||||
on_source_error, on_target_error, unmap, NULL, NULL,
|
on_source_error, on_target_error, unmap, NULL, NULL,
|
||||||
&mirror_job_driver, is_none_mode, base, false,
|
&mirror_job_driver, is_none_mode, base, false,
|
||||||
|
@ -3590,6 +3590,7 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
|
|||||||
bool has_copy_mode, MirrorCopyMode copy_mode,
|
bool has_copy_mode, MirrorCopyMode copy_mode,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
|
int job_flags = JOB_DEFAULT;
|
||||||
|
|
||||||
if (!has_speed) {
|
if (!has_speed) {
|
||||||
speed = 0;
|
speed = 0;
|
||||||
@ -3642,7 +3643,7 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
|
|||||||
* and will allow to check whether the node still exist at mirror completion
|
* and will allow to check whether the node still exist at mirror completion
|
||||||
*/
|
*/
|
||||||
mirror_start(job_id, bs, target,
|
mirror_start(job_id, bs, target,
|
||||||
has_replaces ? replaces : NULL,
|
has_replaces ? replaces : NULL, job_flags,
|
||||||
speed, granularity, buf_size, sync, backing_mode,
|
speed, granularity, buf_size, sync, backing_mode,
|
||||||
on_source_error, on_target_error, unmap, filter_node_name,
|
on_source_error, on_target_error, unmap, filter_node_name,
|
||||||
copy_mode, errp);
|
copy_mode, errp);
|
||||||
|
@ -1029,6 +1029,8 @@ void commit_active_start(const char *job_id, BlockDriverState *bs,
|
|||||||
* @target: Block device to write to.
|
* @target: Block device to write to.
|
||||||
* @replaces: Block graph node name to replace once the mirror is done. Can
|
* @replaces: Block graph node name to replace once the mirror is done. Can
|
||||||
* only be used when full mirroring is selected.
|
* only be used when full mirroring is selected.
|
||||||
|
* @creation_flags: Flags that control the behavior of the Job lifetime.
|
||||||
|
* See @BlockJobCreateFlags
|
||||||
* @speed: The maximum speed, in bytes per second, or 0 for unlimited.
|
* @speed: The maximum speed, in bytes per second, or 0 for unlimited.
|
||||||
* @granularity: The chosen granularity for the dirty bitmap.
|
* @granularity: The chosen granularity for the dirty bitmap.
|
||||||
* @buf_size: The amount of data that can be in flight at one time.
|
* @buf_size: The amount of data that can be in flight at one time.
|
||||||
@ -1050,7 +1052,8 @@ void commit_active_start(const char *job_id, BlockDriverState *bs,
|
|||||||
*/
|
*/
|
||||||
void mirror_start(const char *job_id, BlockDriverState *bs,
|
void mirror_start(const char *job_id, BlockDriverState *bs,
|
||||||
BlockDriverState *target, const char *replaces,
|
BlockDriverState *target, const char *replaces,
|
||||||
int64_t speed, uint32_t granularity, int64_t buf_size,
|
int creation_flags, int64_t speed,
|
||||||
|
uint32_t granularity, int64_t buf_size,
|
||||||
MirrorSyncMode mode, BlockMirrorBackingMode backing_mode,
|
MirrorSyncMode mode, BlockMirrorBackingMode backing_mode,
|
||||||
BlockdevOnError on_source_error,
|
BlockdevOnError on_source_error,
|
||||||
BlockdevOnError on_target_error,
|
BlockdevOnError on_target_error,
|
||||||
|
Loading…
Reference in New Issue
Block a user