This adds one entry to the list qemud_driver->sharedDisks when
attaching a shared disk. And removing the entry from the list
when detaching.
---
src/qemu/qemu_driver.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index b108358..60c3ee8 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5967,6 +5967,18 @@ qemuDomainAttachDeviceDiskLive(virConnectPtr conn,
VIR_WARN("Failed to teardown cgroup for disk path %s",
NULLSTR(disk->src));
}
+
+ /* If the attached disk is shareable, add it to the list
+ * qemud_driver->sharedDisks if attachment succeeded
+ */
+ if (ret == 0 && disk->shared) {
+ if (qemuSharedDiskListAdd(driver->sharedDisks,
+ disk->src,
+ vm->def->name) < 0) {
+ VIR_DEBUG("Failed to add the disk '%s' of domain '%s' to
"
+ "sharedDisks list", disk->src, vm->def->name);
+ }
+ }
end:
if (cgroup)
virCgroupFree(&cgroup);
@@ -6082,6 +6094,16 @@ qemuDomainDetachDeviceDiskLive(struct qemud_driver *driver,
virDomainDiskDeviceTypeToString(disk->type));
break;
}
+
+ if (ret == 0 && disk->shared) {
+ if (qemuSharedDiskListDel(driver->sharedDisks,
+ disk->src,
+ vm->def->name) < 0) {
+ VIR_DEBUG("Failed to remove the entry of disk '%s', domain
"
+ "%s from sharedDisks", disk->src,
vm->def->name);
+ }
+ }
+
return ret;
}
--
1.7.7.6