Revision 1d809098 blockdev.c
b/blockdev.c | ||
---|---|---|
1096 | 1096 |
} |
1097 | 1097 |
|
1098 | 1098 |
void qmp_block_stream(const char *device, bool has_base, |
1099 |
const char *base, bool has_speed, |
|
1100 |
int64_t speed, Error **errp) |
|
1099 |
const char *base, bool has_speed, int64_t speed, |
|
1100 |
bool has_on_error, BlockdevOnError on_error, |
|
1101 |
Error **errp) |
|
1101 | 1102 |
{ |
1102 | 1103 |
BlockDriverState *bs; |
1103 | 1104 |
BlockDriverState *base_bs = NULL; |
1104 | 1105 |
Error *local_err = NULL; |
1105 | 1106 |
|
1107 |
if (!has_on_error) { |
|
1108 |
on_error = BLOCKDEV_ON_ERROR_REPORT; |
|
1109 |
} |
|
1110 |
|
|
1106 | 1111 |
bs = bdrv_find(device); |
1107 | 1112 |
if (!bs) { |
1108 | 1113 |
error_set(errp, QERR_DEVICE_NOT_FOUND, device); |
... | ... | |
1118 | 1123 |
} |
1119 | 1124 |
|
1120 | 1125 |
stream_start(bs, base_bs, base, has_speed ? speed : 0, |
1121 |
block_job_cb, bs, &local_err); |
|
1126 |
on_error, block_job_cb, bs, &local_err);
|
|
1122 | 1127 |
if (error_is_set(&local_err)) { |
1123 | 1128 |
error_propagate(errp, local_err); |
1124 | 1129 |
return; |
Also available in: Unified diff