mirror of https://gitee.com/openkylin/libvirt.git
storage: Create helper to generate FS pool source value
Refactor the code that builds the pool source string during the FS storage pool mount to be a separate helper. A future patch will use the helper in order to validate the mounted FS matches the pool's expectation during poolCheck processing
This commit is contained in:
parent
a8e3247e65
commit
1d1330f37e
|
@ -375,6 +375,39 @@ virStorageBackendFileSystemIsValid(virStoragePoolObjPtr pool)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* virStorageBackendFileSystemGetPoolSource
|
||||||
|
* @pool: storage pool object pointer
|
||||||
|
*
|
||||||
|
* Allocate/return a string representing the FS storage pool source.
|
||||||
|
* It is up to the caller to VIR_FREE the allocated string
|
||||||
|
*/
|
||||||
|
static char *
|
||||||
|
virStorageBackendFileSystemGetPoolSource(virStoragePoolObjPtr pool)
|
||||||
|
{
|
||||||
|
char *src = NULL;
|
||||||
|
|
||||||
|
if (pool->def->type == VIR_STORAGE_POOL_NETFS) {
|
||||||
|
if (pool->def->source.format == VIR_STORAGE_POOL_NETFS_CIFS) {
|
||||||
|
if (virAsprintf(&src, "//%s/%s",
|
||||||
|
pool->def->source.hosts[0].name,
|
||||||
|
pool->def->source.dir) < 0)
|
||||||
|
return NULL;
|
||||||
|
} else {
|
||||||
|
if (virAsprintf(&src, "%s:%s",
|
||||||
|
pool->def->source.hosts[0].name,
|
||||||
|
pool->def->source.dir) < 0)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (VIR_STRDUP(src, pool->def->source.devices[0].path) < 0)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @pool storage pool to check for status
|
* @pool storage pool to check for status
|
||||||
*
|
*
|
||||||
|
@ -445,22 +478,8 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pool->def->type == VIR_STORAGE_POOL_NETFS) {
|
if (!(src = virStorageBackendFileSystemGetPoolSource(pool)))
|
||||||
if (pool->def->source.format == VIR_STORAGE_POOL_NETFS_CIFS) {
|
return -1;
|
||||||
if (virAsprintf(&src, "//%s/%s",
|
|
||||||
pool->def->source.hosts[0].name,
|
|
||||||
pool->def->source.dir) == -1)
|
|
||||||
return -1;
|
|
||||||
} else {
|
|
||||||
if (virAsprintf(&src, "%s:%s",
|
|
||||||
pool->def->source.hosts[0].name,
|
|
||||||
pool->def->source.dir) == -1)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (VIR_STRDUP(src, pool->def->source.devices[0].path) < 0)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (netauto)
|
if (netauto)
|
||||||
cmd = virCommandNewArgList(MOUNT,
|
cmd = virCommandNewArgList(MOUNT,
|
||||||
|
|
Loading…
Reference in New Issue