*
* Returns 0 on success and -1 on error. Reports libvirt error.
*/
-int
+static int
qemuDomainStorageSourceChainAccessPrepare(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virStorageSourcePtr src,
}
+int
+qemuDomainStorageSourceChainAccessAllow(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virStorageSourcePtr src)
+{
+ return qemuDomainStorageSourceChainAccessPrepare(driver, vm, src, false);
+}
+
+
+int
+qemuDomainStorageSourceChainAccessRevoke(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virStorageSourcePtr src)
+{
+ return qemuDomainStorageSourceChainAccessPrepare(driver, vm, src, true);
+}
+
+
/**
* qemuDomainStorageSourceAccessRevoke:
*
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
ATTRIBUTE_NONNULL(3) ATTRIBUTE_RETURN_CHECK;
-int qemuDomainStorageSourceChainAccessPrepare(virQEMUDriverPtr driver,
- virDomainObjPtr vm,
- virStorageSourcePtr src,
- bool teardown);
+int qemuDomainStorageSourceChainAccessAllow(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virStorageSourcePtr src);
+int qemuDomainStorageSourceChainAccessRevoke(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virStorageSourcePtr src);
void qemuDomainStorageSourceAccessRevoke(virQEMUDriverPtr driver,
virDomainObjPtr vm,
if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0)
goto cleanup;
- if (qemuDomainStorageSourceChainAccessPrepare(driver, vm, newsrc, false) < 0)
+ if (qemuDomainStorageSourceChainAccessAllow(driver, vm, newsrc) < 0)
goto cleanup;
if (qemuHotplugAttachManagedPR(driver, vm, newsrc, QEMU_ASYNC_JOB_NONE) < 0)
/* remove the old source from shared device list */
disk->src = oldsrc;
ignore_value(qemuRemoveSharedDisk(driver, disk, vm->def->name));
- ignore_value(qemuDomainStorageSourceChainAccessPrepare(driver, vm, oldsrc, true));
+ ignore_value(qemuDomainStorageSourceChainAccessRevoke(driver, vm, oldsrc));
/* media was changed, so we can remove the old media definition now */
virObjectUnref(oldsrc);
if (sharedAdded)
ignore_value(qemuRemoveSharedDisk(driver, disk, vm->def->name));
- ignore_value(qemuDomainStorageSourceChainAccessPrepare(driver, vm, newsrc, true));
+ ignore_value(qemuDomainStorageSourceChainAccessRevoke(driver, vm, newsrc));
}
/* remove PR manager object if unneeded */
char *devstr = NULL;
VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
- if (qemuDomainStorageSourceChainAccessPrepare(driver, vm, disk->src, false) < 0)
+ if (qemuDomainStorageSourceChainAccessAllow(driver, vm, disk->src) < 0)
goto cleanup;
if (qemuAssignDeviceDiskAlias(vm->def, disk, priv->qemuCaps) < 0)
virDomainAuditDisk(vm, NULL, disk->src, "attach", false);
error:
- ignore_value(qemuDomainStorageSourceChainAccessPrepare(driver, vm, disk->src, true));
+ ignore_value(qemuDomainStorageSourceChainAccessRevoke(driver, vm, disk->src));
goto cleanup;
}
qemuDomainReleaseDeviceAddress(vm, &disk->info);
/* tear down disk security access */
- qemuDomainStorageSourceChainAccessPrepare(driver, vm, disk->src, true);
+ qemuDomainStorageSourceChainAccessRevoke(driver, vm, disk->src);
dev.type = VIR_DOMAIN_DEVICE_DISK;
dev.data.disk = disk;