[libvirt] [PATCH v2 1/3] Revert "storage: Don't duplicate efforts of backend driver"

John Ferlan jferlan at redhat.com
Tue May 26 15:29:17 UTC 2015


This reverts commit 2ac0e647bdd33d93a374e7ef3eadf2a253c7bf79.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/storage/storage_driver.c | 30 ++++++------------------------
 1 file changed, 6 insertions(+), 24 deletions(-)

diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index ac4a74a..30e0969 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -1634,7 +1634,6 @@ storageVolDeleteInternal(virStorageVolPtr obj,
 {
     size_t i;
     int ret = -1;
-    unsigned long long orig_pool_available, orig_pool_allocation;
 
     if (!backend->deleteVol) {
         virReportError(VIR_ERR_NO_SUPPORT,
@@ -1643,9 +1642,6 @@ storageVolDeleteInternal(virStorageVolPtr obj,
         goto cleanup;
     }
 
-    orig_pool_available = pool->def->available;
-    orig_pool_allocation = pool->def->allocation;
-
     if (backend->deleteVol(obj->conn, pool, vol, flags) < 0)
         goto cleanup;
 
@@ -1653,10 +1649,8 @@ storageVolDeleteInternal(virStorageVolPtr obj,
      * in this module since the allocation/available weren't adjusted yet
      */
     if (updateMeta) {
-        if (orig_pool_allocation == pool->def->allocation)
-            pool->def->allocation -= vol->target.allocation;
-        if (orig_pool_available == pool->def->available)
-            pool->def->available += vol->target.allocation;
+        pool->def->allocation -= vol->target.allocation;
+        pool->def->available += vol->target.allocation;
     }
 
     for (i = 0; i < pool->volumes.count; i++) {
@@ -1775,7 +1769,6 @@ storageVolCreateXML(virStoragePoolPtr obj,
     virStorageVolDefPtr voldef = NULL;
     virStorageVolPtr ret = NULL, volobj = NULL;
     virStorageVolDefPtr buildvoldef = NULL;
-    unsigned long long orig_pool_available, orig_pool_allocation;
 
     virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA, NULL);
 
@@ -1823,9 +1816,6 @@ storageVolCreateXML(virStoragePoolPtr obj,
         goto cleanup;
     }
 
-    orig_pool_available = pool->def->available;
-    orig_pool_allocation = pool->def->allocation;
-
     /* Wipe any key the user may have suggested, as volume creation
      * will generate the canonical key.  */
     VIR_FREE(voldef->key);
@@ -1883,10 +1873,8 @@ storageVolCreateXML(virStoragePoolPtr obj,
         goto cleanup;
 
     /* Update pool metadata */
-    if (orig_pool_allocation == pool->def->allocation)
-        pool->def->allocation += buildvoldef->target.allocation;
-    if (orig_pool_available == pool->def->available)
-        pool->def->available -= buildvoldef->target.allocation;
+    pool->def->allocation += buildvoldef->target.allocation;
+    pool->def->available -= buildvoldef->target.allocation;
 
     VIR_INFO("Creating volume '%s' in storage pool '%s'",
              volobj->name, pool->def->name);
@@ -1914,7 +1902,6 @@ storageVolCreateXMLFrom(virStoragePoolPtr obj,
     virStorageVolDefPtr origvol = NULL, newvol = NULL;
     virStorageVolPtr ret = NULL, volobj = NULL;
     unsigned long long allocation;
-    unsigned long long orig_pool_available, orig_pool_allocation;
     int buildret;
 
     virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA |
@@ -2017,9 +2004,6 @@ storageVolCreateXMLFrom(virStoragePoolPtr obj,
                       pool->volumes.count+1) < 0)
         goto cleanup;
 
-    orig_pool_available = pool->def->available;
-    orig_pool_allocation = pool->def->allocation;
-
     /* 'Define' the new volume so we get async progress reporting.
      * Wipe any key the user may have suggested, as volume creation
      * will generate the canonical key.  */
@@ -2073,10 +2057,8 @@ storageVolCreateXMLFrom(virStoragePoolPtr obj,
     newvol = NULL;
 
     /* Updating pool metadata */
-    if (orig_pool_allocation == pool->def->allocation)
-        pool->def->allocation += allocation;
-    if (orig_pool_available == pool->def->available)
-        pool->def->available -= allocation;
+    pool->def->allocation += allocation;
+    pool->def->available -= allocation;
 
     VIR_INFO("Creating volume '%s' in storage pool '%s'",
              volobj->name, pool->def->name);
-- 
2.1.0




More information about the libvir-list mailing list