storage: Don't remove the pool for buildPool failure in storagePoolCreate

https://bugzilla.redhat.com/show_bug.cgi?id=1362349

When adding the ability to build the pool during the start pool processing
using the similar flags as buildPool processing would use, the code was
essentially cut-n-pasted from storagePoolCreateXML.  However, that included
a call to virStoragePoolObjRemove which shouldn't happen within the
storagePoolCreate path since that'll remove the pool from the list of
pools only to be rediscovered if libvirtd restarts.

So on failure, just fail and return as we should expect
This commit is contained in:
John Ferlan 2016-08-04 15:24:48 -04:00
parent 3f19ac3486
commit fbfd6f2103

View File

@ -931,13 +931,10 @@ storagePoolCreate(virStoragePoolPtr obj,
if (build_flags ||
(flags & VIR_STORAGE_POOL_CREATE_WITH_BUILD)) {
if (backend->buildPool(obj->conn, pool, build_flags) < 0) {
virStoragePoolObjRemove(&driver->pools, pool);
pool = NULL;
if (backend->buildPool(obj->conn, pool, build_flags) < 0)
goto cleanup;
}
}
}
VIR_INFO("Starting up storage pool '%s'", pool->def->name);
if (backend->startPool &&