From f363af7e351c6cac0ff442390d0dab283cbd9fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Tue, 16 Jul 2019 08:27:28 +0200 Subject: [PATCH] qemu: address: take fsdriver type into account MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split the switch by fsdriver type to allow adding a new one. Signed-off-by: Ján Tomko Reviewed-by: Daniel P. Berrangé --- src/qemu/qemu_domain_address.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 0e28ecf1d5..29ec97e735 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -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: {