]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: move volume structs to util/
authorEric Blake <eblake@redhat.com>
Sun, 30 Mar 2014 03:21:06 +0000 (21:21 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 2 Apr 2014 12:03:00 +0000 (06:03 -0600)
Another step towards unification of structures.  While we might
not expose everything in XML via domain disk as we do for
storage volume pointer, both places want to deal with (at least
part of) the backing chain; therefore, moving towards a single
struct usable from both contexts will make the backing chain
code more reusable.

* src/conf/storage_conf.h (_virStoragePerms)
(virStorageTimestamps): Move...
* src/util/virstoragefile.h: ...here.
(_virStorageSource): Add more fields.
* src/util/virstoragefile.c (virStorageSourceClear): Clean
additional fields.

Signed-off-by: Eric Blake <eblake@redhat.com>
src/conf/storage_conf.h
src/util/virstoragefile.c
src/util/virstoragefile.h

index abff7ec30984792ec95d2ce74f6d40aba493b372..507f08bc503dfb9f420030b2a2b07aa94df263b1 100644 (file)
 
 # include "internal.h"
 # include "virstorageencryption.h"
+# include "virstoragefile.h"
 # include "virbitmap.h"
 # include "virthread.h"
 
 # include <libxml/tree.h>
 
-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
index f6146d8fefd24d5ad1a089569d61a6f7f76e84cf..137bacc2694ed8feb1bd90bbfd0aa06624ef2067 100644 (file)
@@ -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);
index 4980960b169600f475eecbd27a596d37fc4f4cbf..00d545672351ce76c1ad147b4fb092c3cc261fe0 100644 (file)
@@ -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;
 };