[libvirt] [PATCH 05/11] storage: For FS pool check for properly formatted target volume

John Ferlan jferlan at redhat.com
Thu Dec 15 21:42:10 UTC 2016


Prior to starting up, let's be sure the target volume device is
formatted as we expect; otherwise, inhibit the start.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/storage/storage_backend_fs.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index db5b340..936e472 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -605,8 +605,17 @@ static int
 virStorageBackendFileSystemStart(virConnectPtr conn ATTRIBUTE_UNUSED,
                                  virStoragePoolObjPtr pool)
 {
-    if (pool->def->type != VIR_STORAGE_POOL_DIR &&
-        virStorageBackendFileSystemMount(pool) < 0)
+    const char *format =
+        virStoragePoolFormatFileSystemTypeToString(pool->def->source.format);
+    const char *path = pool->def->source.devices[0].path;
+
+    if (pool->def->type == VIR_STORAGE_POOL_DIR)
+        return 0;
+
+    if (!virStorageBackendDeviceProbeEmpty(path, format, false))
+        return -1;
+
+    if (virStorageBackendFileSystemMount(pool) < 0)
         return -1;
 
     return 0;
-- 
2.7.4




More information about the libvir-list mailing list