On 21.01.2015 16:29, Matthias Gatto wrote:
Replace the parts of the code where a backing store is set manually
with virStorageSourceSetBackingStore
Signed-off-by: Matthias Gatto <matthias.gatto(a)outscale.com>
---
src/conf/domain_conf.c | 2 +-
src/conf/storage_conf.c | 4 ++--
src/qemu/qemu_driver.c | 4 ++--
src/storage/storage_backend_fs.c | 8 ++++----
src/storage/storage_driver.c | 2 +-
src/util/virstoragefile.c | 8 +++++---
tests/virstoragetest.c | 4 ++--
7 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 0668a5b..9d6b888 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5659,7 +5659,7 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
virDomainDiskBackingStoreParse(ctxt, backingStore) < 0)
goto cleanup;
- src->backingStore = backingStore;
+ virStorageSourceSetBackingStore(src, backingStore, 0);
ret = 0;
cleanup:
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index f4f7e24..fac85fa 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1340,10 +1340,10 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
if ((backingStore = virXPathString("string(./backingStore/path)", ctxt)))
{
virStorageSourcePtr backingStorePtr;
- if (VIR_ALLOC(ret->target.backingStore) < 0)
+ if (VIR_ALLOC(backingStorePtr) < 0)
goto error;
- backingStorePtr = virStorageSourceGetBackingStore(&ret->target, 0);
+ backingStorePtr = virStorageSourceSetBackingStore(&ret->target,
backingStorePtr, 0);
backingStorePtr->path = backingStore;
backingStore = NULL;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 547d2b5..b3afccd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13500,13 +13500,13 @@ qemuDomainSnapshotUndoSingleDiskActive(virQEMUDriverPtr
driver,
/* Update vm in place to match changes. */
tmp = disk->src;
disk->src = virStorageSourceGetBackingStore(tmp, 0);
- tmp->backingStore = NULL;
+ virStorageSourceSetBackingStore(tmp, NULL, 0);
virStorageSourceFree(tmp);
if (persistDisk) {
tmp = persistDisk->src;
persistDisk->src = virStorageSourceGetBackingStore(tmp, 0);
- tmp->backingStore = NULL;
+ virStorageSourceSetBackingStore(tmp, NULL, 0);
virStorageSourceFree(tmp);
}
}
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 56cfc56..a3b6688 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -97,8 +97,9 @@ virStorageBackendProbeTarget(virStorageSourcePtr target,
goto cleanup;
if (meta->backingStoreRaw) {
- backingStore = virStorageSourceGetBackingStore(target, 0);
See? this line ^^ is useless.
- if (!(backingStore = virStorageSourceNewFromBacking(meta)))
+ if (!(backingStore = virStorageSourceSetBackingStore(target,
+
virStorageSourceNewFromBacking(meta),
+ 0)))
Well, since I squashed in my diff in 2/9 I'm getting a merge error here.
But that's okay.
goto cleanup;
backingStore->format = backingStoreFormat;
@@ -111,8 +112,7 @@ virStorageBackendProbeTarget(virStorageSourcePtr target,
if (VIR_ALLOC(backingStore) < 0)
goto cleanup;
-
- target->backingStore = backingStore;
+ virStorageSourceSetBackingStore(target, backingStore, 0);
backingStore->type = VIR_STORAGE_TYPE_NETWORK;
backingStore->path = meta->backingStoreRaw;
meta->backingStoreRaw = NULL;
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 66dc994..eeb2a4c 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -2899,7 +2899,7 @@ virStorageFileGetMetadataRecurse(virStorageSourcePtr src,
goto cleanup;
}
- src->backingStore = backingStore;
+ virStorageSourceSetBackingStore(src, backingStore, 0);
backingStore = NULL;
ret = 0;
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 84eefa3..ba38827 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1891,8 +1891,10 @@ virStorageSourceCopy(const virStorageSource *src,
goto error;
if (backingChain && virStorageSourceGetBackingStore(src, 0)) {
- if (!(ret->backingStore =
virStorageSourceCopy(virStorageSourceGetBackingStore(src, 0),
- true)))
+ if (!virStorageSourceSetBackingStore(ret,
+
virStorageSourceCopy(virStorageSourceGetBackingStore(src, 0),
+ true),
+ 0))
goto error;
}
@@ -2029,7 +2031,7 @@ virStorageSourceBackingStoreClear(virStorageSourcePtr def)
/* recursively free backing chain */
virStorageSourceFree(virStorageSourceGetBackingStore(def, 0));
- def->backingStore = NULL;
+ virStorageSourceSetBackingStore(def, NULL, 0);
}
diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c
index 12670da..b7820d4 100644
--- a/tests/virstoragetest.c
+++ b/tests/virstoragetest.c
@@ -583,9 +583,9 @@ testPathRelativePrepare(void)
for (i = 0; i < ARRAY_CARDINALITY(backingchain); i++) {
if (i < ARRAY_CARDINALITY(backingchain) - 1)
- backingchain[i].backingStore = &backingchain[i + 1];
+ virStorageSourceSetBackingStore(&backingchain[i], &backingchain[i +
1], 0);
else
- backingchain[i].backingStore = NULL;
+ virStorageSourceSetBackingStore(&backingchain[i], NULL, 0);
backingchain[i].relPath = NULL;
}
ACK
Michal