return;
}
- bdrv_co_lock(bs);
bdrv_drained_begin(bs);
- bdrv_co_unlock(bs);
old_ctx = bdrv_co_enter(bs);
blk_co_truncate(blk, size, false, PREALLOC_MODE_OFF, 0, errp);
bdrv_co_leave(bs, old_ctx);
- bdrv_co_lock(bs);
bdrv_drained_end(bs);
- bdrv_co_unlock(bs);
-
blk_co_unref(blk);
}
const char *base,
const char *base_node,
const char *backing_file,
+ bool has_backing_mask_protocol,
+ bool backing_mask_protocol,
const char *bottom,
bool has_speed, int64_t speed,
bool has_on_error, BlockdevOnError on_error,
return;
}
+ if (!has_backing_mask_protocol) {
+ backing_mask_protocol = false;
+ }
+
if (!has_on_error) {
on_error = BLOCKDEV_ON_ERROR_REPORT;
}
}
stream_start(job_id, bs, base_bs, backing_file,
+ backing_mask_protocol,
bottom_bs, job_flags, has_speed ? speed : 0, on_error,
filter_node_name, &local_err);
if (local_err) {
const char *top_node,
const char *top,
const char *backing_file,
+ bool has_backing_mask_protocol,
+ bool backing_mask_protocol,
bool has_speed, int64_t speed,
bool has_on_error, BlockdevOnError on_error,
const char *filter_node_name,
if (has_auto_dismiss && !auto_dismiss) {
job_flags |= JOB_MANUAL_DISMISS;
}
+ if (!has_backing_mask_protocol) {
+ backing_mask_protocol = false;
+ }
/* Important Note:
* libvirt relies on the DeviceNotFound error class in order to probe for
}
commit_start(job_id, bs, base_bs, top_bs, job_flags,
speed, on_error, backing_file,
+ backing_mask_protocol,
filter_node_name, &local_err);
}
if (local_err != NULL) {