]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: address: take fsdriver type into account
authorJán Tomko <jtomko@redhat.com>
Tue, 16 Jul 2019 06:27:28 +0000 (08:27 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 8 Jan 2020 08:51:01 +0000 (09:51 +0100)
Split the switch by fsdriver type to allow adding a new one.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
src/qemu/qemu_domain_address.c

index 0e28ecf1d5c72681a199e6cc75f8f7179765eb28..29ec97e7351257115c380912c4ca7ca45f8f8187 100644 (file)
@@ -672,18 +672,30 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDefPtr dev,
         break;
 
     case VIR_DOMAIN_DEVICE_FS:
-        /* the only type of filesystem so far is virtio-9p-pci */
-        switch ((virDomainFSModel) dev->data.fs->model) {
-        case VIR_DOMAIN_FS_MODEL_VIRTIO_TRANSITIONAL:
-            /* Transitional devices only work in conventional PCI slots */
-            return pciFlags;
-        case VIR_DOMAIN_FS_MODEL_VIRTIO:
-        case VIR_DOMAIN_FS_MODEL_VIRTIO_NON_TRANSITIONAL:
-        case VIR_DOMAIN_FS_MODEL_DEFAULT:
-            return virtioFlags;
-        case VIR_DOMAIN_FS_MODEL_LAST:
-            break;
+        switch ((virDomainFSDriverType) dev->data.fs->fsdriver) {
+        case VIR_DOMAIN_FS_DRIVER_TYPE_DEFAULT:
+        case VIR_DOMAIN_FS_DRIVER_TYPE_PATH:
+        case VIR_DOMAIN_FS_DRIVER_TYPE_HANDLE:
+            /* these drivers are handled by virtio-9p-pci */
+            switch ((virDomainFSModel) dev->data.fs->model) {
+            case VIR_DOMAIN_FS_MODEL_VIRTIO_TRANSITIONAL:
+                /* Transitional devices only work in conventional PCI slots */
+                return pciFlags;
+            case VIR_DOMAIN_FS_MODEL_VIRTIO:
+            case VIR_DOMAIN_FS_MODEL_VIRTIO_NON_TRANSITIONAL:
+            case VIR_DOMAIN_FS_MODEL_DEFAULT:
+                return virtioFlags;
+            case VIR_DOMAIN_FS_MODEL_LAST:
+                break;
+            }
+
+        case VIR_DOMAIN_FS_DRIVER_TYPE_LOOP:
+        case VIR_DOMAIN_FS_DRIVER_TYPE_NBD:
+        case VIR_DOMAIN_FS_DRIVER_TYPE_PLOOP:
+        case VIR_DOMAIN_FS_DRIVER_TYPE_LAST:
+            return 0;
         }
+
         return 0;
 
     case VIR_DOMAIN_DEVICE_NET: {