Move the creation of a virStorageVolPtr object by lookup out of
esxStorageVolLookupByPath in an own helper. This way it can be used
also in other functions.
Signed-off-by: Pino Toscano <ptoscano(a)redhat.com>
Reviewed-by: Cole Robinson <crobinso(a)redhat.com>
---
src/esx/esx_storage_backend_vmfs.c | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
index 41f0d4577b..1d7f9afda1 100644
--- a/src/esx/esx_storage_backend_vmfs.c
+++ b/src/esx/esx_storage_backend_vmfs.c
@@ -695,32 +695,41 @@ esxStorageVolLookupByName(virStoragePoolPtr pool,
+static virStorageVolPtr
+datastorePathToStorageVol(virConnectPtr conn, const char *pool,
+ const char *path)
+{
+ esxPrivate *priv = conn->privateData;
+ g_autofree char *key = NULL;
+
+ if (esxVI_LookupStorageVolumeKeyByDatastorePath(priv->primary, path,
+ &key) < 0) {
+ return NULL;
+ }
+
+ return virGetStorageVol(conn, pool, path, key,
+ &esxStorageBackendVMFS, NULL);
+}
+
+
+
static virStorageVolPtr
esxStorageVolLookupByPath(virConnectPtr conn, const char *path)
{
virStorageVolPtr volume = NULL;
- esxPrivate *priv = conn->privateData;
char *datastoreName = NULL;
char *directoryAndFileName = NULL;
- char *key = NULL;
if (esxUtil_ParseDatastorePath(path, &datastoreName, NULL,
&directoryAndFileName) < 0) {
goto cleanup;
}
- if (esxVI_LookupStorageVolumeKeyByDatastorePath(priv->primary, path,
- &key) < 0) {
- goto cleanup;
- }
-
- volume = virGetStorageVol(conn, datastoreName, directoryAndFileName, key,
- &esxStorageBackendVMFS, NULL);
+ volume = datastorePathToStorageVol(conn, datastoreName, directoryAndFileName);
cleanup:
VIR_FREE(datastoreName);
VIR_FREE(directoryAndFileName);
- VIR_FREE(key);
return volume;
}
--
2.24.1