Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
src/conf/virstorageobj.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c
index 99aee9ffb4..1ecf35640c 100644
--- a/src/conf/virstorageobj.c
+++ b/src/conf/virstorageobj.c
@@ -636,14 +636,18 @@ virStoragePoolObjAddVol(virStoragePoolObj *obj,
virObjectRWLockWrite(volumes);
- if (!(volobj = virStorageVolObjNew()))
- goto error;
-
if (!voldef->key || !voldef->name || !voldef->target.path ||
g_hash_table_contains(volumes->objsKey, voldef->key) ||
g_hash_table_contains(volumes->objsName, voldef->name) ||
- g_hash_table_contains(volumes->objsPath, voldef->target.path))
- goto error;
+ g_hash_table_contains(volumes->objsPath, voldef->target.path)) {
+ virObjectRWUnlock(volumes);
+ return -1;
+ }
+
+ if (!(volobj = virStorageVolObjNew())) {
+ virObjectRWUnlock(volumes);
+ return -1;
+ }
g_hash_table_insert(volumes->objsKey, g_strdup(voldef->key), volobj);
virObjectRef(volobj);
@@ -655,14 +659,10 @@ virStoragePoolObjAddVol(virStoragePoolObj *obj,
virObjectRef(volobj);
volobj->voldef = voldef;
- virObjectRWUnlock(volumes);
- virStorageVolObjEndAPI(&volobj);
- return 0;
- error:
virStorageVolObjEndAPI(&volobj);
virObjectRWUnlock(volumes);
- return -1;
+ return 0;
}
--
2.31.1