Use the new accessor APIs for storage_driver and test_driver.
virStorageBackendSCSIStartPool(virConnectPtr conn,
virStoragePoolObjPtr pool)
{
+ const char *configFile = virStoragePoolObjGetConfigFile(pool);
+
if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
- return createVport(conn, pool->def, pool->configFile,
+ return createVport(conn, pool->def, configFile,
&pool->def->source.adapter.data.fchost);
return 0;
{
virStoragePoolObjPtr obj = *objptr;
- if (obj->configFile == NULL) {
+ if (!virStoragePoolObjGetConfigFile(obj)) {
virStoragePoolObjRemove(&driver->pools, obj);
*objptr = NULL;
} else if (obj->newDef) {
if (virStoragePoolIsPersistentEnsureACL(pool->conn, obj->def) < 0)
goto cleanup;
- ret = obj->configFile ? 1 : 0;
+ ret = virStoragePoolObjGetConfigFile(obj) ? 1 : 0;
cleanup:
virStoragePoolObjUnlock(obj);
obj->autostartLink, virStrerror(errno, ebuf, sizeof(ebuf)));
}
- VIR_FREE(obj->configFile);
VIR_FREE(obj->autostartLink);
event = virStoragePoolEventLifecycleNew(obj->def->name,
if (virStoragePoolGetAutostartEnsureACL(pool->conn, obj->def) < 0)
goto cleanup;
- if (!obj->configFile) {
+ if (!virStoragePoolObjGetConfigFile(obj)) {
*autostart = 0;
} else {
*autostart = obj->autostart;
int autostart)
{
virStoragePoolObjPtr obj;
+ const char *configFile;
int ret = -1;
storageDriverLock();
if (virStoragePoolSetAutostartEnsureACL(pool->conn, obj->def) < 0)
goto cleanup;
- if (!obj->configFile) {
+ if (!(configFile = virStoragePoolObjGetConfigFile(obj))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("pool has no config file"));
goto cleanup;
goto cleanup;
}
- if (symlink(obj->configFile, obj->autostartLink) < 0) {
+ if (symlink(configFile, obj->autostartLink) < 0) {
virReportSystemError(errno,
_("Failed to create symlink '%s' to '%s'"),
- obj->autostartLink, obj->configFile);
+ obj->autostartLink, configFile);
goto cleanup;
}
} else {
static int
testStoragePoolObjSetDefaults(virStoragePoolObjPtr obj)
{
+ char *configFile;
obj->def->capacity = defaultPoolCap;
obj->def->allocation = defaultPoolAlloc;
obj->def->available = defaultPoolCap - defaultPoolAlloc;
- return VIR_STRDUP(obj->configFile, "");
+ if (VIR_STRDUP(configFile, "") < 0)
+ return -1;
+
+ virStoragePoolObjSetConfigFile(obj, configFile);
+ return 0;
}
if (!(obj = testStoragePoolObjFindByUUID(privconn, pool->uuid)))
return -1;
- ret = obj->configFile ? 1 : 0;
+ ret = virStoragePoolObjGetConfigFile(obj) ? 1 : 0;
virStoragePoolObjUnlock(obj);
return ret;
/* *SetDefaults fills this in for the persistent pools, but this
* would be a transient pool so remove it; otherwise, the Destroy
* code will not Remove the pool */
- VIR_FREE(obj->configFile);
+ virStoragePoolObjSetConfigFile(obj, NULL);
obj->active = true;
VIR_STORAGE_POOL_EVENT_STOPPED,
0);
- if (obj->configFile == NULL) {
+ if (!(virStoragePoolObjGetConfigFile(obj))) {
virStoragePoolObjRemove(&privconn->pools, obj);
obj = NULL;
}
if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
return -1;
- if (!obj->configFile) {
+ if (!virStoragePoolObjGetConfigFile(obj))
*autostart = 0;
- } else {
+ else
*autostart = obj->autostart;
- }
virStoragePoolObjUnlock(obj);
return 0;
if (!(obj = testStoragePoolObjFindByName(privconn, pool->name)))
return -1;
- if (!obj->configFile) {
+ if (!virStoragePoolObjGetConfigFile(obj)) {
virReportError(VIR_ERR_INVALID_ARG,
"%s", _("pool has no config file"));
goto cleanup;