From 0b5161d9c5cfe0393a739a3dc597b72018ba90cd Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 17 Apr 2014 16:04:33 +0200 Subject: [PATCH] util: storagefile: Add fields from virStorageMetadata to virStorageSource Add the required fields that are missing from the new structure that will allow us to switch the storage file metadata code entirely to the new structure. Add "relPath" and "relDir" and the raw backing store name. Also allow creating linked lists of virStorageSourcePtrs to express backing chains. --- src/util/virstoragefile.c | 7 +++++++ src/util/virstoragefile.h | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 4486b758e..91fdc95e6 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1718,6 +1718,13 @@ virStorageSourceClear(virStorageSourcePtr def) virStorageNetHostDefFree(def->nhosts, def->hosts); virStorageSourceAuthClear(def); + + VIR_FREE(def->relPath); + VIR_FREE(def->relDir); + VIR_FREE(def->backingStoreRaw); + + /* recursively free backing chain */ + virStorageSourceFree(def->backingMeta); } diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 0e5136e8a..11e25eb49 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -271,8 +271,22 @@ struct _virStorageSource { size_t nseclabels; virSecurityDeviceLabelDefPtr *seclabels; + /* backing chain of the storage source */ + virStorageSourcePtr backingMeta; + /* metadata for storage driver access to remote and local volumes */ virStorageDriverDataPtr drv; + + /* metadata about storage image which need separate fields */ + /* Name of the current file as spelled by the user (top level) or + * metadata of the overlay (if this is a backing store). */ + char *relPath; + /* Directory to start from if backingStoreRaw is a relative file + * name. */ + char *relDir; + /* Name of the child backing store recorded in metadata of the + * current file. */ + char *backingStoreRaw; }; -- 2.39.5