[libvirt] [PATCH 8/9] Allow omitting volume capacity when backing store is specified

Ján Tomko jtomko at redhat.com
Thu Feb 19 14:59:16 UTC 2015


Add VIR_VOL_XML_PARSE_OPT_CAPACITY flag to virStorageVolDefParseXML.
With this flag, no error is reported when the capacity is missing
if there is a backing store.
---
 src/conf/storage_conf.c | 6 ++++--
 src/conf/storage_conf.h | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index ca8fc9b..9723696 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1260,7 +1260,8 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
     size_t i;
     int n;
 
-    virCheckFlags(VIR_VOL_XML_PARSE_NO_CAPACITY, NULL);
+    virCheckFlags(VIR_VOL_XML_PARSE_NO_CAPACITY |
+                  VIR_VOL_XML_PARSE_OPT_CAPACITY, NULL);
 
     options = virStorageVolOptionsForPoolType(pool->type);
     if (options == NULL)
@@ -1325,7 +1326,8 @@ virStorageVolDefParseXML(virStoragePoolDefPtr pool,
     if (capacity) {
         if (virStorageSize(unit, capacity, &ret->target.capacity) < 0)
             goto error;
-    } else if (!(flags & VIR_VOL_XML_PARSE_NO_CAPACITY)) {
+    } else if (!(flags & VIR_VOL_XML_PARSE_NO_CAPACITY) &&
+               !((flags & VIR_VOL_XML_PARSE_OPT_CAPACITY) && ret->target.backingStore)) {
         virReportError(VIR_ERR_XML_ERROR, "%s", _("missing capacity element"));
         goto error;
     }
diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
index cd3d09c..21cd584 100644
--- a/src/conf/storage_conf.h
+++ b/src/conf/storage_conf.h
@@ -348,6 +348,8 @@ char *virStoragePoolDefFormat(virStoragePoolDefPtr def);
 typedef enum {
     /* do not require volume capacity at all */
     VIR_VOL_XML_PARSE_NO_CAPACITY  = 1 << 0,
+    /* do not require volume capacity if the volume has a backing store */
+    VIR_VOL_XML_PARSE_OPT_CAPACITY = 1 << 1,
 } virStorageVolDefParseFlags;
 virStorageVolDefPtr
 virStorageVolDefParseString(virStoragePoolDefPtr pool,
-- 
2.0.5




More information about the libvir-list mailing list