From 1d1330f37e3b6b60b428119707e8c76afd6bc2c0 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 7 Dec 2015 08:19:34 -0500 Subject: [PATCH] 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 --- src/storage/storage_backend_fs.c | 51 ++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c index bb3b62aa49..fed0b779e1 100644 --- a/src/storage/storage_backend_fs.c +++ b/src/storage/storage_backend_fs.c @@ -375,6 +375,39 @@ virStorageBackendFileSystemIsValid(virStoragePoolObjPtr pool) 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 * @@ -445,22 +478,8 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool) return -1; } - 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) == -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 (!(src = virStorageBackendFileSystemGetPoolSource(pool))) + return -1; if (netauto) cmd = virCommandNewArgList(MOUNT,