mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
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:
parent
af9dc75c1f
commit
65fc824666
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user