Signed-off-by: Nikolai Barybin <nikolai.barybin@xxxxxxxxxxxxx> --- src/qemu/qemu_cgroup.c | 13 ++++++++++++- src/qemu/qemu_namespace.c | 7 +++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index be4b9a38ff..f3c85d65e8 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -232,7 +232,14 @@ int qemuSetupImageCgroup(virDomainObj *vm, virStorageSource *src) { - return qemuSetupImageCgroupInternal(vm, src, false); + if (qemuSetupImageCgroupInternal(vm, src, false) < 0) + return -1; + + if (src->dataFileStore && + qemuSetupImageCgroupInternal(vm, src->dataFileStore, false) < 0) + return -1; + + return 0; } @@ -321,6 +328,10 @@ qemuSetupImageChainCgroup(virDomainObj *vm, if (qemuSetupImageCgroupInternal(vm, next, forceReadonly) < 0) return -1; + if (next->dataFileStore && + qemuSetupImageCgroupInternal(vm, next->dataFileStore, forceReadonly) < 0) + return -1; + /* setup only the top level image for read-write */ forceReadonly = true; } diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c index 0ebc115524..9fc13ee759 100644 --- a/src/qemu/qemu_namespace.c +++ b/src/qemu/qemu_namespace.c @@ -272,6 +272,13 @@ qemuDomainSetupDisk(virStorageSource *src, } else { GSList *targetPaths = NULL; + if (next->dataFileStore && + !virStorageSourceIsEmpty(next->dataFileStore) && + virStorageSourceIsLocalStorage(next->dataFileStore)) { + g_autofree char *dataFilePath = g_strdup(next->dataFileStore->path); + *paths = g_slist_prepend(*paths, g_steal_pointer(&dataFilePath)); + } + if (virStorageSourceIsEmpty(next) || !virStorageSourceIsLocalStorage(next)) { /* Not creating device. Just continue. */ -- 2.43.5