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@xxxxxxxxxxxx> > --- > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list