[libvirt] [PATCH 0/9] Filesystem-device-related refactors (virtio-fs epopee)

Ján Tomko (9): build: error out when check-augeas fails qemu: rename gluster_debug_entry conf: add xmlopt to virDomainFSDefNew conf: add private data to virDomainFSDef qemu: add private data to virDomainFSDef qemu: pass private data to qemuBuildFilesystemCommandLine qemu: address: take fsdriver type into account qemu: command: take fsdriver type into account docs: formatdomain: use 'element' instead of 'block' docs/formatdomain.html.in | 2 +- src/Makefile.am | 2 +- src/conf/domain_conf.c | 9 ++++++-- src/conf/domain_conf.h | 4 +++- src/lxc/lxc_native.c | 2 +- src/lxc/lxc_process.c | 2 +- src/openvz/openvz_conf.c | 2 +- src/qemu/libvirtd_qemu.aug | 4 ++-- src/qemu/qemu_command.c | 22 ++++++++++++++++---- src/qemu/qemu_conf.c | 11 ++++++---- src/qemu/qemu_domain.c | 38 ++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 12 +++++++++++ src/qemu/qemu_domain_address.c | 34 ++++++++++++++++++++---------- src/vmx/vmx.c | 2 +- src/vz/vz_sdk.c | 2 +- 15 files changed, 117 insertions(+), 31 deletions(-) -- 2.21.0

Fixes: 2ffbdabb859594256d45c1b48521dd6501629852 Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am index f3d4c28c6d..c9b5eeba47 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -342,7 +342,7 @@ check-augeas: $(augeas_DATA) $(augeastest_DATA) FILE=$$(basename "$$f"); \ "$(AUGPARSE)" \ -I "$(srcdir)/$$DIR" -I "$(builddir)/$$DIR" \ - "$$DIR/$$FILE"; \ + "$$DIR/$$FILE" || exit 1; \ done; \ fi .PHONY: check-augeas -- 2.21.0

On Mon, Jan 06, 2020 at 03:25:57PM +0100, Ján Tomko wrote:
Fixes: 2ffbdabb859594256d45c1b48521dd6501629852
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Remove the 'gluster' part and decouple the return from the gluster_debug_level parsing to allow adding more options to this section. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/libvirtd_qemu.aug | 4 ++-- src/qemu/qemu_conf.c | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug index 86bea2a32a..557b6f38f8 100644 --- a/src/qemu/libvirtd_qemu.aug +++ b/src/qemu/libvirtd_qemu.aug @@ -115,7 +115,7 @@ module Libvirtd_qemu = let nvram_entry = str_array_entry "nvram" - let gluster_debug_level_entry = int_entry "gluster_debug_level" + let debug_level_entry = int_entry "gluster_debug_level" let memory_entry = str_entry "memory_backing_dir" @@ -152,7 +152,7 @@ module Libvirtd_qemu = | network_entry | log_entry | nvram_entry - | gluster_debug_level_entry + | debug_level_entry | memory_entry | vxhs_entry | nbd_entry diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index c07a844dfc..b62dd1df52 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -796,10 +796,13 @@ virQEMUDriverConfigLoadNVRAMEntry(virQEMUDriverConfigPtr cfg, static int -virQEMUDriverConfigLoadGlusterDebugEntry(virQEMUDriverConfigPtr cfg, - virConfPtr conf) +virQEMUDriverConfigLoadDebugEntry(virQEMUDriverConfigPtr cfg, + virConfPtr conf) { - return virConfGetValueUInt(conf, "gluster_debug_level", &cfg->glusterDebugLevel); + if (virConfGetValueUInt(conf, "gluster_debug_level", &cfg->glusterDebugLevel) < 0) + return -1; + + return 0; } @@ -1014,7 +1017,7 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg, if (virQEMUDriverConfigLoadNVRAMEntry(cfg, conf, privileged) < 0) return -1; - if (virQEMUDriverConfigLoadGlusterDebugEntry(cfg, conf) < 0) + if (virQEMUDriverConfigLoadDebugEntry(cfg, conf) < 0) return -1; if (virQEMUDriverConfigLoadSecurityEntry(cfg, conf, privileged) < 0) -- 2.21.0

On Mon, Jan 06, 2020 at 03:25:58PM +0100, Ján Tomko wrote:
Remove the 'gluster' part and decouple the return from the gluster_debug_level parsing to allow adding more options to this section.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/libvirtd_qemu.aug | 4 ++-- src/qemu/qemu_conf.c | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

This will be needed in the future for allocating private data. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/domain_conf.c | 4 ++-- src/conf/domain_conf.h | 2 +- src/lxc/lxc_native.c | 2 +- src/lxc/lxc_process.c | 2 +- src/openvz/openvz_conf.c | 2 +- src/vmx/vmx.c | 2 +- src/vz/vz_sdk.c | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index ee33b7caf0..400467f9c0 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2279,7 +2279,7 @@ virDomainControllerIsPSeriesPHB(const virDomainControllerDef *cont) virDomainFSDefPtr -virDomainFSDefNew(void) +virDomainFSDefNew(virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED) { virDomainFSDefPtr ret; @@ -11127,7 +11127,7 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt, ctxt->node = node; - if (!(def = virDomainFSDefNew())) + if (!(def = virDomainFSDefNew(xmlopt))) return NULL; type = virXMLPropString(node, "type"); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index e012975fca..8f97b53b69 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2866,7 +2866,7 @@ virDomainControllerDefPtr virDomainControllerDefNew(virDomainControllerType type void virDomainControllerDefFree(virDomainControllerDefPtr def); bool virDomainControllerIsPSeriesPHB(const virDomainControllerDef *cont); -virDomainFSDefPtr virDomainFSDefNew(void); +virDomainFSDefPtr virDomainFSDefNew(virDomainXMLOptionPtr xmlopt); void virDomainFSDefFree(virDomainFSDefPtr def); void virDomainActualNetDefFree(virDomainActualNetDefPtr def); virDomainVsockDefPtr virDomainVsockDefNew(virDomainXMLOptionPtr xmlopt); diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index e9b83653b5..dd2345c324 100644 --- a/src/lxc/lxc_native.c +++ b/src/lxc/lxc_native.c @@ -59,7 +59,7 @@ lxcCreateFSDef(int type, { virDomainFSDefPtr def; - if (!(def = virDomainFSDefNew())) + if (!(def = virDomainFSDefNew(NULL))) return NULL; def->type = type; diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 487a085b7e..0a9ccdf9ec 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -1138,7 +1138,7 @@ virLXCProcessEnsureRootFS(virDomainObjPtr vm) if (root) return 0; - if (!(root = virDomainFSDefNew())) + if (!(root = virDomainFSDefNew(NULL))) goto error; root->type = VIR_DOMAIN_FS_TYPE_MOUNT; diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index c4c6dec2f7..32696c675e 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -340,7 +340,7 @@ openvzReadFSConf(virDomainDefPtr def, veid); goto error; } else if (ret > 0) { - if (!(fs = virDomainFSDefNew())) + if (!(fs = virDomainFSDefNew(NULL))) goto error; fs->type = VIR_DOMAIN_FS_TYPE_TEMPLATE; diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 2afb0b2823..aa88dfcb5d 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -2465,7 +2465,7 @@ int virVMXParseFileSystem(virConfPtr conf, int number, virDomainFSDefPtr *def) if (!(present && enabled)) return 0; - if (!(*def = virDomainFSDefNew())) + if (!(*def = virDomainFSDefNew(NULL))) return -1; (*def)->type = VIR_DOMAIN_FS_TYPE_MOUNT; diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index c98542c244..f13f8a81b3 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -825,7 +825,7 @@ prlsdkAddDomainHardDisksInfo(vzDriverPtr driver, PRL_HANDLE sdkdom, virDomainDef if (IS_CT(def) && prlsdkInBootList(sdkdom, hdd)) { - if (!(fs = virDomainFSDefNew())) + if (!(fs = virDomainFSDefNew(NULL))) goto error; if (prlsdkGetFSInfo(hdd, fs) < 0) -- 2.21.0

On Mon, Jan 06, 2020 at 03:25:59PM +0100, Ján Tomko wrote:
This will be needed in the future for allocating private data.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/domain_conf.c | 4 ++-- src/conf/domain_conf.h | 2 +- src/lxc/lxc_native.c | 2 +- src/lxc/lxc_process.c | 2 +- src/openvz/openvz_conf.c | 2 +- src/vmx/vmx.c | 2 +- src/vz/vz_sdk.c | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Add an object to hold the private data and call the allocation function if it's present in xmlopt. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/domain_conf.c | 7 ++++++- src/conf/domain_conf.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 400467f9c0..7d1dd717c2 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2279,7 +2279,7 @@ virDomainControllerIsPSeriesPHB(const virDomainControllerDef *cont) virDomainFSDefPtr -virDomainFSDefNew(virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED) +virDomainFSDefNew(virDomainXMLOptionPtr xmlopt) { virDomainFSDefPtr ret; @@ -2289,6 +2289,11 @@ virDomainFSDefNew(virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED) if (!(ret->src = virStorageSourceNew())) goto cleanup; + if (xmlopt && + xmlopt->privateData.fsNew && + !(ret->privateData = xmlopt->privateData.fsNew())) + goto cleanup; + return ret; cleanup: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 8f97b53b69..c177623c47 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -817,6 +817,7 @@ struct _virDomainFSDef { unsigned long long space_soft_limit; /* in bytes */ bool symlinksResolved; virDomainVirtioOptionsPtr virtio; + virObjectPtr privateData; }; @@ -2740,6 +2741,7 @@ struct _virDomainXMLPrivateDataCallbacks { virDomainXMLPrivateDataNewFunc graphicsNew; virDomainXMLPrivateDataNewFunc networkNew; virDomainXMLPrivateDataNewFunc videoNew; + virDomainXMLPrivateDataNewFunc fsNew; virDomainXMLPrivateDataFormatFunc format; virDomainXMLPrivateDataParseFunc parse; /* following function shall return a pointer which will be used as the -- 2.21.0

On Mon, Jan 06, 2020 at 03:26:00PM +0100, Ján Tomko wrote:
Add an object to hold the private data and call the allocation function if it's present in xmlopt.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/domain_conf.c | 7 ++++++- src/conf/domain_conf.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Wire up the allocation and disposal of private data. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_domain.c | 38 ++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 12 ++++++++++++ 2 files changed, 50 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 065c9e97a9..87741659ad 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1407,6 +1407,43 @@ qemuDomainNetworkPrivateDispose(void *obj G_GNUC_UNUSED) } +static virClassPtr qemuDomainFSPrivateClass; +static void qemuDomainFSPrivateDispose(void *obj); + + +static int +qemuDomainFSPrivateOnceInit(void) +{ + if (!VIR_CLASS_NEW(qemuDomainFSPrivate, virClassForObject())) + return -1; + + return 0; +} + + +VIR_ONCE_GLOBAL_INIT(qemuDomainFSPrivate); + + +static virObjectPtr +qemuDomainFSPrivateNew(void) +{ + qemuDomainFSPrivatePtr priv; + + if (qemuDomainFSPrivateInitialize() < 0) + return NULL; + + if (!(priv = virObjectNew(qemuDomainFSPrivateClass))) + return NULL; + + return (virObjectPtr) priv; +} + + +static void +qemuDomainFSPrivateDispose(void *obj G_GNUC_UNUSED) +{ +} + static virClassPtr qemuDomainVideoPrivateClass; static void qemuDomainVideoPrivateDispose(void *obj); @@ -3865,6 +3902,7 @@ virDomainXMLPrivateDataCallbacks virQEMUDriverPrivateDataCallbacks = { .graphicsNew = qemuDomainGraphicsPrivateNew, .networkNew = qemuDomainNetworkPrivateNew, .videoNew = qemuDomainVideoPrivateNew, + .fsNew = qemuDomainFSPrivateNew, .parse = qemuDomainObjPrivateXMLParse, .format = qemuDomainObjPrivateXMLFormat, .getParseOpaque = qemuDomainObjPrivateXMLGetParseOpaque, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index c93bdf4099..c6afc484f6 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -560,6 +560,18 @@ struct _qemuDomainNetworkPrivate { }; +#define QEMU_DOMAIN_FS_PRIVATE(dev) \ + ((qemuDomainFSPrivatePtr) (dev)->privateData) + +typedef struct _qemuDomainFSPrivate qemuDomainFSPrivate; +typedef qemuDomainFSPrivate *qemuDomainFSPrivatePtr; +struct _qemuDomainFSPrivate { + virObject parent; + + int dummy; +}; + + typedef enum { QEMU_PROCESS_EVENT_WATCHDOG = 0, QEMU_PROCESS_EVENT_GUESTPANIC, -- 2.21.0

On Mon, Jan 06, 2020 at 03:26:01PM +0100, Ján Tomko wrote:
Wire up the allocation and disposal of private data.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_domain.c | 38 ++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 12 ++++++++++++ 2 files changed, 50 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

This will be used by a future patch. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 11d3c29297..3b18282de4 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2678,7 +2678,8 @@ qemuBuildFSDevCommandLine(virCommandPtr cmd, static int qemuBuildFilesystemCommandLine(virCommandPtr cmd, const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + virQEMUCapsPtr qemuCaps, + qemuDomainObjPrivatePtr priv G_GNUC_UNUSED) { size_t i; @@ -9869,7 +9870,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildDisksCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildFilesystemCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildFilesystemCommandLine(cmd, def, qemuCaps, priv) < 0) return NULL; if (qemuBuildNetCommandLine(driver, vm, logManager, secManager, cmd, -- 2.21.0

On Mon, Jan 06, 2020 at 03:26:02PM +0100, Ján Tomko wrote:
This will be used by a future patch.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Split the switch by fsdriver type to allow adding a new one. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- 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 b077240899..de91c07e0a 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: { -- 2.21.0

On Mon, Jan 06, 2020 at 03:26:03PM +0100, Ján Tomko wrote:
Split the switch by fsdriver type to allow adding a new one.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_domain_address.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Split the formatting by fsdriver type to allow adding a new type. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3b18282de4..90236620a1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2684,8 +2684,21 @@ qemuBuildFilesystemCommandLine(virCommandPtr cmd, size_t i; for (i = 0; i < def->nfss; i++) { - if (qemuBuildFSDevCommandLine(cmd, def->fss[i], def, qemuCaps) < 0) - return -1; + switch ((virDomainFSDriverType) def->fss[i]->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 */ + if (qemuBuildFSDevCommandLine(cmd, def->fss[i], def, qemuCaps) < 0) + return -1; + 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: + break; + } } return 0; -- 2.21.0

On Mon, Jan 06, 2020 at 03:26:04PM +0100, Ján Tomko wrote:
Split the formatting by fsdriver type to allow adding a new type.
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- docs/formatdomain.html.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index dd04a05f09..b7910e3742 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3979,7 +3979,7 @@ <span class="since"> (since 0.9.13)</span></dd> </dl> - The filesystem block has an optional attribute <code>accessmode</code> + The filesystem element has an optional attribute <code>accessmode</code> which specifies the security mode for accessing the source <span class="since">(since 0.8.5)</span>. Currently this only works with <code>type='mount'</code> for the QEMU/KVM driver. The possible -- 2.21.0

On Mon, Jan 06, 2020 at 03:26:05PM +0100, Ján Tomko wrote:
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- docs/formatdomain.html.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
participants (2)
-
Daniel P. Berrangé
-
Ján Tomko