storage: Break out storageDriverLoadPoolState

Will simplify a future patch
This commit is contained in:
Cole Robinson 2015-04-27 10:43:22 -04:00
parent c180a3dcf7
commit af9dc75c1f

View File

@ -75,25 +75,14 @@ static void storageDriverUnlock(void)
}
static void
storagePoolUpdateAllState(void)
storagePoolUpdateState(virStoragePoolObjPtr pool)
{
size_t i;
bool active;
for (i = 0; i < driver->pools.count; i++) {
virStoragePoolObjPtr pool = driver->pools.objs[i];
virStorageBackendPtr backend;
virStoragePoolObjLock(pool);
if (!virStoragePoolObjIsActive(pool)) {
virStoragePoolObjUnlock(pool);
continue;
}
if ((backend = virStorageBackendForType(pool->def->type)) == NULL) {
VIR_ERROR(_("Missing backend %d"), pool->def->type);
virStoragePoolObjUnlock(pool);
continue;
goto error;
}
/* Backends which do not support 'checkPool' are considered
@ -106,8 +95,7 @@ storagePoolUpdateAllState(void)
VIR_ERROR(_("Failed to initialize storage pool '%s': %s"),
pool->def->name, err ? err->message :
_("no error message found"));
virStoragePoolObjUnlock(pool);
continue;
goto error;
}
/* We can pass NULL as connection, most backends do not use
@ -123,12 +111,30 @@ storagePoolUpdateAllState(void)
VIR_ERROR(_("Failed to restart storage pool '%s': %s"),
pool->def->name, err ? err->message :
_("no error message found"));
virStoragePoolObjUnlock(pool);
continue;
goto error;
}
}
pool->active = active;
error:
return;
}
static void
storagePoolUpdateAllState(void)
{
size_t i;
for (i = 0; i < driver->pools.count; i++) {
virStoragePoolObjPtr pool = driver->pools.objs[i];
virStoragePoolObjLock(pool);
if (!virStoragePoolObjIsActive(pool)) {
virStoragePoolObjUnlock(pool);
continue;
}
storagePoolUpdateState(pool);
virStoragePoolObjUnlock(pool);
}
}