[libvirt PATCH 0/3] qemu: validate more filesystem elements (virtiofs saga)

Ján Tomko (3): qemu: fix indentation in qemuValidateDomainDeviceDefFS qemu: extend filesystem XML validation docs: formatdomain: clarify support of some filesystem options docs/formatdomain.rst | 5 ++++- src/qemu/qemu_validate.c | 35 ++++++++++++++++++++++++----------- 2 files changed, 28 insertions(+), 12 deletions(-) -- 2.41.0

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_validate.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 36c7941fe9..8d2927af60 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4309,24 +4309,24 @@ qemuValidateDomainDeviceDefFS(virDomainFSDef *fs, case VIR_DOMAIN_FS_DRIVER_TYPE_VIRTIOFS: if (!fs->sock) { if (fs->readonly) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("virtiofs does not yet support read-only mode")); - return -1; + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("virtiofs does not yet support read-only mode")); + return -1; } if (!driver->privileged) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("virtiofs is not yet supported in session mode")); - return -1; + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("virtiofs is not yet supported in session mode")); + return -1; } if (fs->accessmode != VIR_DOMAIN_FS_ACCESSMODE_PASSTHROUGH) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("virtiofs only supports passthrough accessmode")); - return -1; + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("virtiofs only supports passthrough accessmode")); + return -1; } if (fs->wrpolicy != VIR_DOMAIN_FS_WRPOLICY_DEFAULT) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("virtiofs does not support wrpolicy")); - return -1; + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("virtiofs does not support wrpolicy")); + return -1; } } -- 2.41.0

Reject readonly argument for virtiofs and quotas for all filesystems. https://issues.redhat.com/browse/RHEL-4994 https://issues.redhat.com/browse/RHEL-4432 Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_validate.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 8d2927af60..f02ed4d44e 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4264,6 +4264,13 @@ qemuValidateDomainDeviceDefFS(virDomainFSDef *fs, _("only supports mount filesystem type")); return -1; } + + if (fs->space_hard_limit > 0 || space_soft_limit > 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("filesystem usage limits are not supported with QEMU")); + return -1; + } + if (fs->multidevs != VIR_DOMAIN_FS_MULTIDEVS_DEFAULT && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_FSDEV_MULTIDEVS)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", @@ -4330,6 +4337,12 @@ qemuValidateDomainDeviceDefFS(virDomainFSDef *fs, } } + if (fs->readonly) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("virtiofs does not support read-only access")); + return -1; + } + if (fs->model != VIR_DOMAIN_FS_MODEL_DEFAULT) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("virtiofs does not support model")); -- 2.41.0

On a Wednesday in 2023, Ján Tomko wrote:
Reject readonly argument for virtiofs and quotas for all filesystems.
https://issues.redhat.com/browse/RHEL-4994 https://issues.redhat.com/browse/RHEL-4432
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_validate.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 8d2927af60..f02ed4d44e 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4264,6 +4264,13 @@ qemuValidateDomainDeviceDefFS(virDomainFSDef *fs, _("only supports mount filesystem type")); return -1; } + + if (fs->space_hard_limit > 0 || space_soft_limit > 0) {
fs->space_soft_limit, of course Jano
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("filesystem usage limits are not supported with QEMU")); + return -1; + } + if (fs->multidevs != VIR_DOMAIN_FS_MULTIDEVS_DEFAULT && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_FSDEV_MULTIDEVS)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",

Not all are supported by all hypervisors. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- docs/formatdomain.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 4a1b6faee4..af62fcd820 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -3686,13 +3686,16 @@ A directory on the host that can be accessed directly from the guest. tag that is exported to the guest as a hint for where to mount. ``readonly`` Enables exporting filesystem as a readonly mount for guest, by default - read-write access is given (currently only works for QEMU/KVM driver). + read-write access is given (currently only works for QEMU/KVM driver; not + with virtiofs). ``space_hard_limit`` Maximum space available to this guest's filesystem. :since:`Since 0.9.13` + Only supported by the OpenVZ driver. ``space_soft_limit`` Maximum space available to this guest's filesystem. The container is permitted to exceed its soft limits for a grace period of time. Afterwards the hard limit is enforced. :since:`Since 0.9.13` + Only supported by the OpenVZ driver. Device Addresses -- 2.41.0

On Wed, Sep 20, 2023 at 05:24:59PM +0200, Ján Tomko wrote:
Ján Tomko (3): qemu: fix indentation in qemuValidateDomainDeviceDefFS qemu: extend filesystem XML validation docs: formatdomain: clarify support of some filesystem options
docs/formatdomain.rst | 5 ++++- src/qemu/qemu_validate.c | 35 ++++++++++++++++++++++++----------- 2 files changed, 28 insertions(+), 12 deletions(-)
Reviewed-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Ján Tomko