forked from rpms/libvirt
49 lines
1.8 KiB
Diff
49 lines
1.8 KiB
Diff
|
From 97dafbcc080bdb3253dbd451c94ab8f687b156ba Mon Sep 17 00:00:00 2001
|
||
|
Message-Id: <97dafbcc080bdb3253dbd451c94ab8f687b156ba@dist-git>
|
||
|
From: Peter Krempa <pkrempa@redhat.com>
|
||
|
Date: Tue, 4 Feb 2020 15:07:48 +0100
|
||
|
Subject: [PATCH] qemu: snapshot: Prevent too-nested domain XML when doing
|
||
|
inactive snapshot
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Similarly to 510d154a0b41aa70aadabc0918d16dee22882394 we need to prevent
|
||
|
doing too deeply nested backing chains and reject them with a sane error
|
||
|
message.
|
||
|
|
||
|
Add a loop to go through the snapshots prior to attempting actually
|
||
|
creating them to prevent some possible inconsistent scenarios.
|
||
|
|
||
|
We don't need to do it when reusing backing chains as we'll be
|
||
|
re-detecting the backing chain in that case anyways.
|
||
|
|
||
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
||
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||
|
(cherry picked from commit b168fa88b85dec181882816ab65a59a6c4500667)
|
||
|
|
||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1524278
|
||
|
Message-Id: <3272682df55dcc564055a2badb0c61d4680c81a9.1580824112.git.pkrempa@redhat.com>
|
||
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
||
|
---
|
||
|
src/qemu/qemu_driver.c | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
|
||
|
index 5c72db2544..833cf9f3d9 100644
|
||
|
--- a/src/qemu/qemu_driver.c
|
||
|
+++ b/src/qemu/qemu_driver.c
|
||
|
@@ -14632,6 +14632,9 @@ qemuDomainSnapshotCreateInactiveExternal(virQEMUDriverPtr driver,
|
||
|
if (!snapdisk->src->format)
|
||
|
snapdisk->src->format = VIR_STORAGE_FILE_QCOW2;
|
||
|
|
||
|
+ if (qemuDomainStorageSourceValidateDepth(defdisk->src, 1, defdisk->dst) < 0)
|
||
|
+ return -1;
|
||
|
+
|
||
|
/* creates cmd line args: qemu-img create -f qcow2 -o */
|
||
|
if (!(cmd = virCommandNewArgList(qemuImgPath,
|
||
|
"create",
|
||
|
--
|
||
|
2.25.0
|
||
|
|