]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
storagefile: Add externalDataStore member
authorCole Robinson <crobinso@redhat.com>
Sat, 5 Oct 2019 18:39:22 +0000 (14:39 -0400)
committerCole Robinson <crobinso@redhat.com>
Fri, 11 Oct 2019 18:25:59 +0000 (14:25 -0400)
Add the plumbing to track a externalDataStoreRaw as a virStorageSource

Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
src/util/virstoragefile.c
src/util/virstoragefile.h

index 9a99dd6d779e22e4c84610b46a1e3cd2dff4ecae..427510bd6a73188712e9b3e28ff4fdf68ae2c595 100644 (file)
@@ -2340,6 +2340,12 @@ virStorageSourceCopy(const virStorageSource *src,
             return NULL;
     }
 
+    if (src->externalDataStore) {
+        if (!(def->externalDataStore = virStorageSourceCopy(src->externalDataStore,
+                                                            true)))
+            return NULL;
+    }
+
     VIR_STEAL_PTR(ret, def);
     return ret;
 }
@@ -2561,6 +2567,9 @@ virStorageSourceClear(virStorageSourcePtr def)
     VIR_FREE(def->timestamps);
     VIR_FREE(def->externalDataStoreRaw);
 
+    virObjectUnref(def->externalDataStore);
+    def->externalDataStore = NULL;
+
     virStorageNetHostDefFree(def->nhosts, def->hosts);
     virStorageAuthDefFree(def->auth);
     virObjectUnref(def->privateData);
index bbff511657d7d1f4efe7d10491573b52f93bcb0b..d84dad052d87074d065452df6cead994812f3435 100644 (file)
@@ -292,6 +292,9 @@ struct _virStorageSource {
     /* backing chain of the storage source */
     virStorageSourcePtr backingStore;
 
+    /* external data store storage source */
+    virStorageSourcePtr externalDataStore;
+
     /* metadata for storage driver access to remote and local volumes */
     virStorageDriverDataPtr drv;