From nobody Mon Feb 9 03:20:03 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1563275260; cv=none; d=zoho.com; s=zohoarc; b=XouFCxBj/v8YAy0bGUnmA3h0OCNGYjzRT8W1aqbnbIrgZh6KkMpLEjivQxtQY0R4bHaNfSitCGLINQJVyfRKJ87rQRXXLSJh5de5PC55LBDo/kzB6bm2WXCvibgDOzEToJ6McOhWKiAOpxSYLSK7KQQs6EbqZix1ZBendlD1pZU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1563275260; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=0/RVcQxX49sfD+S4vx0pTVbgwAuCYaI2FnmTZT0htzA=; b=MkASteH7qwrDALNNs98sLabgwlPYnaxyruCYu3oGbewP/h6OqQfl99DYliXHKGEzGwyx0X52XuMG+F5wbJ4KBRUdfor0I2hbR1bX1JAc7OofV6x7BcINWF024i+0G7Ea5CluMMgEnjeCH4D2+4vUJ5xmnXK6Oyd1Hk41mf1VXNg= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1563275260345852.6514553209784; Tue, 16 Jul 2019 04:07:40 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C6B52307D960; Tue, 16 Jul 2019 11:07:37 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A47F75B681; Tue, 16 Jul 2019 11:07:37 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 65C473FA9A; Tue, 16 Jul 2019 11:07:37 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x6GB77Bk029294 for ; Tue, 16 Jul 2019 07:07:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5AF0B60920; Tue, 16 Jul 2019 11:07:07 +0000 (UTC) Received: from icr.brq.redhat.com (unknown [10.43.2.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id DA385611DC for ; Tue, 16 Jul 2019 11:07:06 +0000 (UTC) From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: libvir-list@redhat.com Date: Tue, 16 Jul 2019 13:06:55 +0200 Message-Id: <9f2d738c8522c54e1538441af547673077a05283.1563275164.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 7/9] qemu: introduce qemuDomainDeviceDefValidateFS X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Tue, 16 Jul 2019 11:07:38 +0000 (UTC) Move validation of the filesystem device out of qemu_command. Signed-off-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 25 ---------------------- src/qemu/qemu_domain.c | 46 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 26 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 8617b010dc..f938ec22d3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2707,17 +2707,6 @@ qemuBuildFSStr(virDomainFSDefPtr fs) const char *driver =3D qemuDomainFSDriverTypeToString(fs->fsdriver); const char *wrpolicy =3D virDomainFSWrpolicyTypeToString(fs->wrpolicy); =20 - if (fs->type !=3D VIR_DOMAIN_FS_TYPE_MOUNT) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("only supports mount filesystem type")); - goto error; - } - - if (!driver) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Filesystem driver type not supported")); - goto error; - } virBufferAdd(&opt, driver, -1); =20 if (fs->fsdriver =3D=3D VIR_DOMAIN_FS_DRIVER_TYPE_PATH || @@ -2729,14 +2718,6 @@ qemuBuildFSStr(virDomainFSDefPtr fs) } else if (fs->accessmode =3D=3D VIR_DOMAIN_FS_ACCESSMODE_SQUASH) { virBufferAddLit(&opt, ",security_model=3Dnone"); } - } else { - /* For other fs drivers, default(passthru) should always - * be supported */ - if (fs->accessmode !=3D VIR_DOMAIN_FS_ACCESSMODE_PASSTHROUGH) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("only supports passthrough accessmode")); - goto error; - } } =20 if (fs->wrpolicy) @@ -2767,12 +2748,6 @@ qemuBuildFSDevStr(const virDomainDef *def, { virBuffer opt =3D VIR_BUFFER_INITIALIZER; =20 - if (fs->type !=3D VIR_DOMAIN_FS_TYPE_MOUNT) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("can only passthrough directories")); - goto error; - } - if (qemuBuildVirtioDevStr(&opt, "virtio-9p", qemuCaps, VIR_DOMAIN_DEVICE_FS, fs) < 0) { goto error; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 670b928c4c..bd7e8c2648 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6274,6 +6274,47 @@ qemuDomainDeviceDefValidateIOMMU(const virDomainIOMM= UDef *iommu, } =20 =20 +static int +qemuDomainDeviceDefValidateFS(virDomainFSDefPtr fs, + const virDomainDef *def ATTRIBUTE_UNUSED, + virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED) +{ + if (fs->type !=3D VIR_DOMAIN_FS_TYPE_MOUNT) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("only supports mount filesystem type")); + return -1; + } + + switch ((virDomainFSDriverType) fs->fsdriver) { + case VIR_DOMAIN_FS_DRIVER_TYPE_DEFAULT: + case VIR_DOMAIN_FS_DRIVER_TYPE_PATH: + break; + + case VIR_DOMAIN_FS_DRIVER_TYPE_HANDLE: + if (fs->accessmode !=3D VIR_DOMAIN_FS_ACCESSMODE_PASSTHROUGH) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("only supports passthrough accessmode")); + return -1; + } + break; + + case VIR_DOMAIN_FS_DRIVER_TYPE_LOOP: + case VIR_DOMAIN_FS_DRIVER_TYPE_NBD: + case VIR_DOMAIN_FS_DRIVER_TYPE_PLOOP: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Filesystem driver type not supported")); + return -1; + + case VIR_DOMAIN_FS_DRIVER_TYPE_LAST: + default: + virReportEnumRangeError(virDomainFSDriverType, fs->fsdriver); + return -1; + } + + return 0; +} + + static int qemuDomainDeviceDefValidateZPCIAddress(virDomainDeviceInfoPtr info, virQEMUCapsPtr qemuCaps) @@ -6429,8 +6470,11 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef= *dev, ret =3D qemuDomainDeviceDefValidateIOMMU(dev->data.iommu, def, qem= uCaps); break; =20 - case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: + ret =3D qemuDomainDeviceDefValidateFS(dev->data.fs, def, qemuCaps); + break; + + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_HUB: case VIR_DOMAIN_DEVICE_NVRAM: --=20 2.19.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list