Now that there are only two elements in the enum, let's change it to a
bool and rename the function similarly to the one added in previous
commit.
---
src/qemu/qemu_driver.c | 44 +++++++++++++++++---------------------------
1 file changed, 17 insertions(+), 27 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 3af63aa..92087fc 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13370,12 +13370,6 @@ qemuDomainMigrateGetMaxSpeed(virDomainPtr dom,
}
-typedef enum {
- VIR_DISK_CHAIN_READ_ONLY,
- VIR_DISK_CHAIN_READ_WRITE,
-} qemuDomainDiskChainMode;
-
-
/**
* qemuDomainDiskChainElementRevoke:
*
@@ -13400,23 +13394,25 @@ qemuDomainDiskChainElementRevoke(virQEMUDriverPtr driver,
}
-/* Several operations end up adding a single element of a disk
- * backing file chain; this helper function ensures that the lock manager,
- * cgroup device controller, and security manager labelling are all aware of
- * each new file before it is added to a chain */
+/**
+ * qemuDomainDiskChainElementPrepare:
+ *
+ * Allow a VM access to a single element of a disk backing chain; this helper
+ * ensures that the lock manager, cgroup device controller, and security manager
+ * labelling are all aware of each new file before it is added to a chain */
static int
-qemuDomainPrepareDiskChainElement(virQEMUDriverPtr driver,
+qemuDomainDiskChainElementPrepare(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virStorageSourcePtr elem,
- qemuDomainDiskChainMode mode)
+ bool readonly)
{
- bool readonly = elem->readonly;
+ bool was_readonly = elem->readonly;
virQEMUDriverConfigPtr cfg = NULL;
int ret = -1;
cfg = virQEMUDriverGetConfig(driver);
- elem->readonly = mode == VIR_DISK_CHAIN_READ_ONLY;
+ elem->readonly = readonly;
if (virDomainLockImageAttach(driver->lockManager, cfg->uri, vm, elem) < 0)
goto cleanup;
@@ -13431,7 +13427,7 @@ qemuDomainPrepareDiskChainElement(virQEMUDriverPtr driver,
ret = 0;
cleanup:
- elem->readonly = readonly;
+ elem->readonly = was_readonly;
virObjectUnref(cfg);
return ret;
}
@@ -14156,8 +14152,7 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
}
/* set correct security, cgroup and locking options on the new image */
- if (qemuDomainPrepareDiskChainElement(driver, vm, newDiskSrc,
- VIR_DISK_CHAIN_READ_WRITE) < 0) {
+ if (qemuDomainDiskChainElementPrepare(driver, vm, newDiskSrc, false) < 0) {
qemuDomainDiskChainElementRevoke(driver, vm, newDiskSrc);
goto cleanup;
}
@@ -16713,8 +16708,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
keepParentLabel) < 0)
goto endjob;
- if (qemuDomainPrepareDiskChainElement(driver, vm, mirror,
- VIR_DISK_CHAIN_READ_WRITE) < 0) {
+ if (qemuDomainDiskChainElementPrepare(driver, vm, mirror, false) < 0) {
qemuDomainDiskChainElementRevoke(driver, vm, mirror);
goto endjob;
}
@@ -17078,11 +17072,9 @@ qemuDomainBlockCommit(virDomainPtr dom,
* operation succeeds, but doing that requires tracking the
* operation in XML across libvirtd restarts. */
clean_access = true;
- if (qemuDomainPrepareDiskChainElement(driver, vm, baseSource,
- VIR_DISK_CHAIN_READ_WRITE) < 0 ||
+ if (qemuDomainDiskChainElementPrepare(driver, vm, baseSource, false) < 0 ||
(top_parent && top_parent != disk->src &&
- qemuDomainPrepareDiskChainElement(driver, vm, top_parent,
- VIR_DISK_CHAIN_READ_WRITE) < 0))
+ qemuDomainDiskChainElementPrepare(driver, vm, top_parent, false) < 0))
goto endjob;
if (flags & VIR_DOMAIN_BLOCK_COMMIT_RELATIVE &&
@@ -17150,11 +17142,9 @@ qemuDomainBlockCommit(virDomainPtr dom,
endjob:
if (ret < 0 && clean_access) {
/* Revert access to read-only, if possible. */
- qemuDomainPrepareDiskChainElement(driver, vm, baseSource,
- VIR_DISK_CHAIN_READ_ONLY);
+ qemuDomainDiskChainElementPrepare(driver, vm, baseSource, true);
if (top_parent && top_parent != disk->src)
- qemuDomainPrepareDiskChainElement(driver, vm, top_parent,
- VIR_DISK_CHAIN_READ_ONLY);
+ qemuDomainDiskChainElementPrepare(driver, vm, top_parent, true);
}
virStorageSourceFree(mirror);
qemuDomainObjEndJob(driver, vm);
--
2.7.3