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