On a Friday in 2020, Christian Schoenebeck wrote:
The QEMU 9pfs 'multidevs' option exists since QEMU 4.2, so just set this capability based on that QEMU version. Signed-off-by: Christian Schoenebeck <qemu_oss@xxxxxxxxxxxxx> --- src/qemu/qemu_capabilities.c | 5 +++++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 + 5 files changed, 9 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index a95a60c36a..68b6e166e9 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -567,6 +567,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "query-named-block-nodes.flat", "blockdev-snapshot.allow-write-only-overlay", "blockdev-reopen", + "virtfs-multidevs", ); @@ -4837,6 +4838,10 @@ virQEMUCapsInitQMPVersionCaps(virQEMUCapsPtr qemuCaps) ARCH_IS_PPC64(qemuCaps->arch)) { virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_MAX_CPU_COMPAT); } + + /* -virtfs multidevs option is supported since QEMU 4.2 */ + if (qemuCaps->version >= 4002000) + virQEMUCapsSet(qemuCaps, QEMU_CAPS_VIRTFS_MULTIDEVS); }
The preferred way is to set the capabilities based on what QEMU actually knows - that way it works correctly even on newer QEMUs with the feature compiled out. This option shows up in the output of 'query-command-line-options', so all that's needed is adding it to the correct array: diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 68b6e166e9..9402581a9d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3157,6 +3157,7 @@ static struct virQEMUCapsCommandLineProps virQEMUCapsCommandLine[] = { { "chardev", "fd", QEMU_CAPS_CHARDEV_FD_PASS }, { "overcommit", NULL, QEMU_CAPS_OVERCOMMIT }, { "smp-opts", "dies", QEMU_CAPS_SMP_DIES }, + { "virtfs", "multidevs", QEMU_CAPS_VIRTFS_MULTIDEVS }, }; static int
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index f0961e273c..a6025312be 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -548,6 +548,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_QMP_QUERY_NAMED_BLOCK_NODES_FLAT, /* query-named-block-nodes supports the 'flat' option */ QEMU_CAPS_BLOCKDEV_SNAPSHOT_ALLOW_WRITE_ONLY, /* blockdev-snapshot has the 'allow-write-only-overlay' feature */ QEMU_CAPS_BLOCKDEV_REOPEN, /* 'blockdev-reopen' qmp command is supported */ + QEMU_CAPS_VIRTFS_MULTIDEVS, /* -virtfs multidevs supported by virtio-9p */
The brief version should be enough: /* virtfs.multidevs */ Jano
QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags;
Attachment:
signature.asc
Description: PGP signature