Despite the warning that virStorageSourceCopy needs to be populated on
additions to the structure commit 687730540e4 neglected to implement the
copy function.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/util/virstoragefile.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 58f67278da..b6a2b415e9 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -2041,6 +2041,29 @@ virStorageSourceChainHasManagedPR(virStorageSourcePtr src)
}
+static virStoragePRDefPtr
+virStoragePRDefCopy(virStoragePRDefPtr src)
+{
+ virStoragePRDefPtr copy = NULL;
+ virStoragePRDefPtr ret = NULL;
+
+ if (VIR_ALLOC(copy) < 0)
+ return NULL;
+
+ copy->managed = src->managed;
+
+ if (VIR_STRDUP(copy->path, src->path) < 0 ||
+ VIR_STRDUP(copy->mgralias, src->mgralias) < 0)
+ goto cleanup;
+
+ VIR_STEAL_PTR(ret, copy);
+
+ cleanup:
+ virStoragePRDefFree(copy);
+ return ret;
+}
+
+
virSecurityDeviceLabelDefPtr
virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src,
const char *model)
@@ -2245,6 +2268,10 @@ virStorageSourceCopy(const virStorageSource *src,
!(ret->auth = virStorageAuthDefCopy(src->auth)))
goto error;
+ if (src->pr &&
+ !(ret->pr = virStoragePRDefCopy(src->pr)))
+ goto error;
+
if (backingChain && src->backingStore) {
if (!(ret->backingStore = virStorageSourceCopy(src->backingStore,
true)))
--
2.16.2