From: Peter Krempa Date: Fri, 13 Jul 2018 14:19:38 +0000 (+0200) Subject: utils: storage: Add copying of PR definition to virStorageSource X-Git-Tag: v4.6.0-rc1~143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a0835364e35f435fa2042e879906c40c01d3fbf;p=thirdparty%2Flibvirt.git utils: storage: Add copying of PR definition to virStorageSource 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 --- 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)))