[libvirt] [PATCH v2 4/9] virstoragefile: Always use virStorageSourceSetBackingStore to set backing store

Michal Privoznik mprivozn at redhat.com
Wed Jan 28 10:10:12 UTC 2015


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 at 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




More information about the libvir-list mailing list