[libvirt] [PATCH 6/9] storage: Fill in 'type' field for virStorageSource in storage driver

Peter Krempa posted 9 patches 7 years, 7 months ago
[libvirt] [PATCH 6/9] storage: Fill in 'type' field for virStorageSource in storage driver
Posted by Peter Krempa 7 years, 7 months ago
Storage driver uses virStorageSource only partially to store it's
configuration but fully when parsing backing files of storage volumes.
This patch sets the 'type' field to a value other than
VIR_STORAGE_TYPE_NONE so that further patches can add a terminator
element to backing chains without breaking iteration.
---
 src/conf/storage_conf.c               | 4 ++++
 src/storage/storage_backend_gluster.c | 2 ++
 src/storage/storage_backend_logical.c | 1 +
 3 files changed, 7 insertions(+)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index c35fa0e15..7c373e781 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1109,6 +1109,8 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
     if (VIR_ALLOC(ret) < 0)
         return NULL;

+    ret->target.type = VIR_STORAGE_TYPE_FILE;
+
     ret->name = virXPathString("string(./name)", ctxt);
     if (ret->name == NULL) {
         virReportError(VIR_ERR_XML_ERROR, "%s",
@@ -1133,6 +1135,8 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
         if (VIR_ALLOC(ret->target.backingStore) < 0)
             goto error;

+        ret->target.backingStore->type = VIR_STORAGE_TYPE_FILE;
+
         ret->target.backingStore->path = backingStore;
         backingStore = NULL;

diff --git a/src/storage/storage_backend_gluster.c b/src/storage/storage_backend_gluster.c
index eac771b42..5eea84f16 100644
--- a/src/storage/storage_backend_gluster.c
+++ b/src/storage/storage_backend_gluster.c
@@ -306,6 +306,8 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state,
         if (VIR_ALLOC(vol->target.backingStore) < 0)
             goto cleanup;

+        vol->target.backingStore->type = VIR_STORAGE_TYPE_NETWORK;
+
         vol->target.backingStore->path = meta->backingStoreRaw;

         if (backingFormat < 0)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index 0ad357729..1e0f04e4e 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -340,6 +340,7 @@ virStorageBackendLogicalMakeVol(char **const groups,
             goto cleanup;

         vol->target.backingStore->format = VIR_STORAGE_POOL_LOGICAL_LVM2;
+        vol->target.backingStore->type = VIR_STORAGE_TYPE_BLOCK;
     }

     if (!vol->key && VIR_STRDUP(vol->key, groups[2]) < 0)
-- 
2.14.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 6/9] storage: Fill in 'type' field for virStorageSource in storage driver
Posted by Eric Blake 7 years, 7 months ago
On 10/12/2017 02:07 PM, Peter Krempa wrote:
> Storage driver uses virStorageSource only partially to store it's
> configuration but fully when parsing backing files of storage volumes.
> This patch sets the 'type' field to a value other than
> VIR_STORAGE_TYPE_NONE so that further patches can add a terminator
> element to backing chains without breaking iteration.
> ---
>  src/conf/storage_conf.c               | 4 ++++
>  src/storage/storage_backend_gluster.c | 2 ++
>  src/storage/storage_backend_logical.c | 1 +
>  3 files changed, 7 insertions(+)
> 

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list