From 4a0835364e35f435fa2042e879906c40c01d3fbf Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 13 Jul 2018 16:19:38 +0200 Subject: [PATCH] utils: storage: Add copying of PR definition to virStorageSource MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ján Tomko --- 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))) -- GitLab