storage: If driver startup state syncing fails, delete statefile

If you end up with a state file for a pool that no longer starts up
or refreshes correctly, the state file is never removed and adds
noise to the logs everytime libvirtd is started.

If the initial state syncing fails, delete the statefile.
This commit is contained in:
Cole Robinson 2015-04-27 10:43:22 -04:00
parent af9dc75c1f
commit 65fc824666

View File

@ -79,6 +79,12 @@ storagePoolUpdateState(virStoragePoolObjPtr pool)
{
bool active;
virStorageBackendPtr backend;
int ret = -1;
char *stateFile;
if (!(stateFile = virFileBuildPath(driver->stateDir,
pool->def->name, ".xml")))
goto error;
if ((backend = virStorageBackendForType(pool->def->type)) == NULL) {
VIR_ERROR(_("Missing backend %d"), pool->def->type);
@ -116,7 +122,14 @@ storagePoolUpdateState(virStoragePoolObjPtr pool)
}
pool->active = active;
ret = 0;
error:
if (ret < 0) {
if (stateFile)
unlink(stateFile);
}
VIR_FREE(stateFile);
return;
}