[libvirt] [PATCH 2/2] storage: Resolve issues in failure path
John Ferlan
jferlan at redhat.com
Wed May 7 00:08:49 UTC 2014
https://bugzilla.redhat.com/show_bug.cgi?id=1092882
Refactoring in commit id '0c2305b3' resulted in the wrong storage
volume object being passed to the new storageVolDeleteInternal().
It should have passed 'voldef' which is the address found in the
pool->volumes.objs[i] array. By passing 'voldef', the DeleteInternal
code will find and remove the voldef from the volumes.objs[] list.
Signed-off-by: John Ferlan <jferlan at redhat.com>
---
src/storage/storage_driver.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 789744f..8299824 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -1766,12 +1766,11 @@ storageVolCreateXML(virStoragePoolPtr obj,
voldef->building = 0;
pool->asyncjobs--;
- voldef = NULL;
-
if (buildret < 0) {
- storageVolDeleteInternal(volobj, backend, pool, buildvoldef,
+ VIR_FREE(buildvoldef);
+ storageVolDeleteInternal(volobj, backend, pool, voldef,
0, false);
- buildvoldef = NULL;
+ voldef = NULL;
goto cleanup;
}
--
1.9.0
More information about the libvir-list
mailing list