]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
storage: Create helper to generate FS pool source value
authorJohn Ferlan <jferlan@redhat.com>
Mon, 7 Dec 2015 13:19:34 +0000 (08:19 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 15 Dec 2015 19:33:00 +0000 (14:33 -0500)
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

index bb3b62aa49d37b1e23e04da9b6994f291016dc67..fed0b779e1e129a9ec66848383d6f4bfdc4e326c 100644 (file)
@@ -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,