From 5e54361c9d15f004a6b6795841c6689028b99e63 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Tue, 26 Apr 2016 08:19:07 -0400 Subject: [PATCH] storage: Need to clear pool prior to calling the refreshPool Prior to calling the 'refreshPool' during CreatePool or UploadPool operations, we need to clear the pool; otherwise, the pool will have duplicated entries. --- src/storage/storage_driver.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index ae6a511a13..5dffcc8651 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -727,6 +727,7 @@ storagePoolCreateXML(virConnectPtr conn, stateFile = virFileBuildPath(driver->stateDir, pool->def->name, ".xml"); + virStoragePoolObjClearVols(pool); if (!stateFile || virStoragePoolSaveState(stateFile, pool->def) < 0 || backend->refreshPool(conn, pool) < 0) { if (stateFile) @@ -918,6 +919,7 @@ storagePoolCreate(virStoragePoolPtr obj, stateFile = virFileBuildPath(driver->stateDir, pool->def->name, ".xml"); + virStoragePoolObjClearVols(pool); if (!stateFile || virStoragePoolSaveState(stateFile, pool->def) < 0 || backend->refreshPool(obj->conn, pool) < 0) { if (stateFile) @@ -2363,6 +2365,7 @@ storageVolUpload(virStorageVolPtr obj, * interaction and we can just lookup the backend in the callback * routine in order to call the refresh API. */ + virStoragePoolObjClearVols(pool); if (backend->refreshPool) { if (VIR_ALLOC(cbdata) < 0 || VIR_STRDUP(cbdata->pool_name, pool->def->name) < 0) -- GitLab