diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h index abff7ec30984792ec95d2ce74f6d40aba493b372..507f08bc503dfb9f420030b2a2b07aa94df263b1 100644 --- a/src/conf/storage_conf.h +++ b/src/conf/storage_conf.h @@ -26,33 +26,12 @@ # include "internal.h" # include "virstorageencryption.h" +# include "virstoragefile.h" # include "virbitmap.h" # include "virthread.h" # include -typedef struct _virStoragePerms virStoragePerms; -typedef virStoragePerms *virStoragePermsPtr; -struct _virStoragePerms { - mode_t mode; - uid_t uid; - gid_t gid; - char *label; -}; - -typedef struct _virStorageTimestamps virStorageTimestamps; -typedef virStorageTimestamps *virStorageTimestampsPtr; -struct _virStorageTimestamps { - struct timespec atime; - /* if btime.tv_nsec == -1 then - * birth time is unknown - */ - struct timespec btime; - struct timespec ctime; - struct timespec mtime; -}; - - /* * How the volume's data is stored on underlying * physical devices - can potentially span many diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index f6146d8fefd24d5ad1a089569d61a6f7f76e84cf..137bacc2694ed8feb1bd90bbfd0aa06624ef2067 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1569,6 +1569,8 @@ virStorageSourceClear(virStorageSourcePtr def) VIR_FREE(def->path); virStorageSourcePoolDefFree(def->srcpool); VIR_FREE(def->driverName); + virBitmapFree(def->features); + VIR_FREE(def->compat); virStorageEncryptionFree(def->encryption); if (def->seclabels) { @@ -1576,6 +1578,11 @@ virStorageSourceClear(virStorageSourcePtr def) virSecurityDeviceLabelDefFree(def->seclabels[i]); VIR_FREE(def->seclabels); } + if (def->perms) { + VIR_FREE(def->perms->label); + VIR_FREE(def->perms); + } + VIR_FREE(def->timestamps); virStorageNetHostDefFree(def->nhosts, def->hosts); virStorageSourceAuthClear(def); diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 4980960b169600f475eecbd27a596d37fc4f4cbf..00d545672351ce76c1ad147b4fb092c3cc261fe0 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -85,6 +85,26 @@ enum virStorageFileFeature { VIR_ENUM_DECL(virStorageFileFeature); +typedef struct _virStoragePerms virStoragePerms; +typedef virStoragePerms *virStoragePermsPtr; +struct _virStoragePerms { + mode_t mode; + uid_t uid; + gid_t gid; + char *label; +}; + + +typedef struct _virStorageTimestamps virStorageTimestamps; +typedef virStorageTimestamps *virStorageTimestampsPtr; +struct _virStorageTimestamps { + struct timespec atime; + struct timespec btime; /* birth time unknown if btime.tv_nsec == -1 */ + struct timespec ctime; + struct timespec mtime; +}; + + typedef struct _virStorageFileMetadata virStorageFileMetadata; typedef virStorageFileMetadata *virStorageFileMetadataPtr; struct _virStorageFileMetadata { @@ -206,9 +226,14 @@ struct _virStorageSource { } secret; } auth; virStorageEncryptionPtr encryption; + char *driverName; int format; /* enum virStorageFileFormat */ + virBitmapPtr features; + char *compat; + virStoragePermsPtr perms; + virStorageTimestampsPtr timestamps; size_t nseclabels; virSecurityDeviceLabelDefPtr *seclabels; };