/**
* qemuBlockStorageSourceAttachPrepareBlockdev:
* @src: storage source to prepare data from
+ * @backingStore: storage source to use as backing of @src
* @autoreadonly: use 'auto-read-only' feature of qemu
*
* Creates a qemuBlockStorageSourceAttachData structure containing data to attach
*/
qemuBlockStorageSourceAttachDataPtr
qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSourcePtr src,
+ virStorageSourcePtr backingStore,
bool autoreadonly)
{
VIR_AUTOPTR(qemuBlockStorageSourceAttachData) data = NULL;
return NULL;
if (!(data->formatProps = qemuBlockStorageSourceGetBlockdevProps(src,
- src->backingStore)) ||
+ backingStore)) ||
!(data->storageProps = qemuBlockStorageSourceGetBackendProps(src, false,
false,
autoreadonly)))
qemuBlockStorageSourceAttachDataPtr
qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSourcePtr src,
+ virStorageSourcePtr backingStore,
bool autoreadonly);
qemuBlockStorageSourceAttachDataPtr
{
VIR_AUTOPTR(qemuBlockStorageSourceAttachData) elem = NULL;
- if (!(elem = qemuBlockStorageSourceAttachPrepareBlockdev(src, true)))
+ if (!(elem = qemuBlockStorageSourceAttachPrepareBlockdev(src, src->backingStore, true)))
return -1;
if (qemuBuildStorageSourceAttachPrepareCommon(src, elem, qemuCaps) < 0)
/* Migration via blockdev-mirror was supported sooner than the auto-read-only
* feature was added to qemu */
- if (!(data = qemuBlockStorageSourceAttachPrepareBlockdev(copysrc, false)))
+ if (!(data = qemuBlockStorageSourceAttachPrepareBlockdev(copysrc,
+ copysrc->backingStore,
+ false)))
goto cleanup;
if (qemuDomainObjEnterMonitorAsync(driver, vm,