From cb38b6cbc7e35e7ee92a7f54828f21261227d17a Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Thu, 15 Dec 2016 09:19:49 -0500 Subject: [PATCH] storage: Validate the device formats at logical startup At startup time, rather than blindly trusting the target devices are still properly formatted, let's check to make sure the pool's target devices are all properly formatted before attempting to start the pool. Signed-off-by: John Ferlan --- src/storage/storage_backend_logical.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 6a6720e220..85e080bf98 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -743,6 +743,19 @@ static int virStorageBackendLogicalStartPool(virConnectPtr conn ATTRIBUTE_UNUSED, virStoragePoolObjPtr pool) { + size_t i; + + /* Let's make sure the pool's devices are properly formatted */ + for (i = 0; i < pool->def->source.ndevice; i++) { + const char *path = pool->def->source.devices[i].path; + + /* The blkid FS and Part probing code doesn't know "lvm2" (this + * pool's only format type), but it does know "LVM2_member", so + * we'll pass that here */ + if (!virStorageBackendDeviceIsEmpty(path, "LVM2_member", false)) + return -1; + } + /* Let's make sure that the pool's name matches the pvs output and * that the pool's source devices match the pvs output. */ -- GitLab