From 78490acc399902666788e6d142e3e216f13928a8 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 10 Feb 2016 17:05:03 +0100 Subject: [PATCH] storageVolCreateXML: Swap order of two operations Firstly, we realloc internal list to hold new item (=volume that will be potentially created) and then we check whether we actually know how to create it. If we don't we consume more memory than we really need for no good reason. Signed-off-by: Michal Privoznik --- src/storage/storage_driver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index 8ee28406f2..e0ded01619 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -1856,10 +1856,6 @@ storageVolCreateXML(virStoragePoolPtr obj, goto cleanup; } - if (VIR_REALLOC_N(pool->volumes.objs, - pool->volumes.count+1) < 0) - goto cleanup; - if (!backend->createVol) { virReportError(VIR_ERR_NO_SUPPORT, "%s", _("storage pool does not support volume " @@ -1867,6 +1863,10 @@ storageVolCreateXML(virStoragePoolPtr obj, goto cleanup; } + if (VIR_REALLOC_N(pool->volumes.objs, + pool->volumes.count+1) < 0) + goto cleanup; + /* Wipe any key the user may have suggested, as volume creation * will generate the canonical key. */ VIR_FREE(voldef->key); -- GitLab