commit: Expose on-error option in QMP
Now that the error handling in the common block job is fixed, we can expose the on-error option in QMP instead of hard-coding it as 'report' in qmp_block_commit(). This fulfills the promise that the old comment in that function made, even if a bit later than expected: "This will be part of the QMP command, if/when the BlockdevOnError change for blkmirror makes it in". Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20200214200812.28180-7-kwolf@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
9ad1e79f3f
commit
8faad1c7fb
@ -3471,6 +3471,7 @@ void qmp_block_commit(bool has_job_id, const char *job_id, const char *device,
|
|||||||
bool has_top, const char *top,
|
bool has_top, const char *top,
|
||||||
bool has_backing_file, const char *backing_file,
|
bool has_backing_file, const char *backing_file,
|
||||||
bool has_speed, int64_t speed,
|
bool has_speed, int64_t speed,
|
||||||
|
bool has_on_error, BlockdevOnError on_error,
|
||||||
bool has_filter_node_name, const char *filter_node_name,
|
bool has_filter_node_name, const char *filter_node_name,
|
||||||
bool has_auto_finalize, bool auto_finalize,
|
bool has_auto_finalize, bool auto_finalize,
|
||||||
bool has_auto_dismiss, bool auto_dismiss,
|
bool has_auto_dismiss, bool auto_dismiss,
|
||||||
@ -3481,15 +3482,14 @@ void qmp_block_commit(bool has_job_id, const char *job_id, const char *device,
|
|||||||
BlockDriverState *base_bs, *top_bs;
|
BlockDriverState *base_bs, *top_bs;
|
||||||
AioContext *aio_context;
|
AioContext *aio_context;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
/* This will be part of the QMP command, if/when the
|
|
||||||
* BlockdevOnError change for blkmirror makes it in
|
|
||||||
*/
|
|
||||||
BlockdevOnError on_error = BLOCKDEV_ON_ERROR_REPORT;
|
|
||||||
int job_flags = JOB_DEFAULT;
|
int job_flags = JOB_DEFAULT;
|
||||||
|
|
||||||
if (!has_speed) {
|
if (!has_speed) {
|
||||||
speed = 0;
|
speed = 0;
|
||||||
}
|
}
|
||||||
|
if (!has_on_error) {
|
||||||
|
on_error = BLOCKDEV_ON_ERROR_REPORT;
|
||||||
|
}
|
||||||
if (!has_filter_node_name) {
|
if (!has_filter_node_name) {
|
||||||
filter_node_name = NULL;
|
filter_node_name = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1658,6 +1658,9 @@
|
|||||||
#
|
#
|
||||||
# @speed: the maximum speed, in bytes per second
|
# @speed: the maximum speed, in bytes per second
|
||||||
#
|
#
|
||||||
|
# @on-error: the action to take on an error. 'ignore' means that the request
|
||||||
|
# should be retried. (default: report; Since: 5.0)
|
||||||
|
#
|
||||||
# @filter-node-name: the node name that should be assigned to the
|
# @filter-node-name: the node name that should be assigned to the
|
||||||
# filter driver that the commit job inserts into the graph
|
# filter driver that the commit job inserts into the graph
|
||||||
# above @top. If this option is not given, a node name is
|
# above @top. If this option is not given, a node name is
|
||||||
@ -1694,6 +1697,7 @@
|
|||||||
'data': { '*job-id': 'str', 'device': 'str', '*base-node': 'str',
|
'data': { '*job-id': 'str', 'device': 'str', '*base-node': 'str',
|
||||||
'*base': 'str', '*top-node': 'str', '*top': 'str',
|
'*base': 'str', '*top-node': 'str', '*top': 'str',
|
||||||
'*backing-file': 'str', '*speed': 'int',
|
'*backing-file': 'str', '*speed': 'int',
|
||||||
|
'*on-error': 'BlockdevOnError',
|
||||||
'*filter-node-name': 'str',
|
'*filter-node-name': 'str',
|
||||||
'*auto-finalize': 'bool', '*auto-dismiss': 'bool' } }
|
'*auto-finalize': 'bool', '*auto-dismiss': 'bool' } }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user