[PATCH] conf: Allow all volume modes for disk type='lun' sources

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Commit 82ba41108acd0f3f made possible to use direct mapped iSCSI
volumes in qemu as disk sources but didn't remove the define time check.

Rework the check by simplifying the condition and allow any volumes to
be used with disk type='lun'.
---
 src/conf/domain_conf.c | 32 ++++++++++++--------------------
 1 file changed, 12 insertions(+), 20 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 571b7bf..9484404 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4184,26 +4184,18 @@ virDomainDeviceDefPostParseInternal(virDomainDeviceDefPtr dev,
             }
         }

-        /* Validate LUN configuration
-         * NOTE: virStorageTranslateDiskSourcePool is not run yet, so for
-         *       disk "volume"'s, the closest we can get at config time is
-         *       to ensure mode isn't direct since host/default will allow
-         *       lun/block usage. At run time if it's determined the wrong
-         *       voltype and pooltype values are set, then failure occurs
-         */
-        if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN &&
-            !(disk->src->type == VIR_STORAGE_TYPE_BLOCK ||
-              (disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
-               disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_ISCSI) ||
-              (disk->src->type == VIR_STORAGE_TYPE_VOLUME &&
-               disk->src->srcpool &&
-               disk->src->srcpool->mode !=
-               VIR_STORAGE_SOURCE_POOL_MODE_DIRECT))) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("disk '%s' improperly configured for a "
-                             "device='lun'"),
-                           disk->dst);
-            return -1;
+        /* Validate LUN configuration */
+        if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
+            /* volumes weren't translated at this point, so accept them */
+            if (!(disk->src->type == VIR_STORAGE_TYPE_BLOCK ||
+                  disk->src->type == VIR_STORAGE_TYPE_VOLUME ||
+                  (disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
+                   disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_ISCSI))) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                               _("disk '%s' improperly configured for a "
+                                 "device='lun'"), disk->dst);
+                return -1;
+            }
         }

         if (disk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
-- 
2.8.2

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]