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

Peter Krempa pkrempa at redhat.com
Thu Oct 12 19:07:37 UTC 2017


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




More information about the libvir-list mailing list