From: Tim Wiederhake Date: Mon, 11 Apr 2022 11:27:41 +0000 (+0200) Subject: virStoragePoolObjAddVol: Simplify error path X-Git-Tag: v8.3.0-rc1~86 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8283450370245ccb5d15f72107a8d09aebdc63f3;p=thirdparty%2Flibvirt.git virStoragePoolObjAddVol: Simplify error path Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- 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; }