[libvirt PATCH 1/3] conf: require target for external virtiofsd

Ján Tomko posted 3 patches 4 years, 7 months ago
There is a newer version of this series
[libvirt PATCH 1/3] conf: require target for external virtiofsd
Posted by Ján Tomko 4 years, 7 months ago
When adding support for externally launched virtiofsd,
I was too liberal and did not require a target.

But the target is required, because it's passed to the
QEMU device, not to virtiofsd.

https://bugzilla.redhat.com/show_bug.cgi?id=1969232

Fixes: 12967c3e1333a6e106110f449ccb1e96279b9527
Signed-off-by: Ján Tomko <jtomko@redhat.com>
---
 docs/formatdomain.rst                         | 1 +
 docs/kbase/virtiofs.rst                       | 1 +
 src/conf/domain_conf.c                        | 2 +-
 tests/qemuxml2argvdata/vhost-user-fs-sock.xml | 1 +
 4 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index da4d93a787..c6dede053f 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -3261,6 +3261,7 @@ A directory on the host that can be accessed directly from the guest.
      <filesystem type='mount'>
          <driver type='virtiofs' queue='1024'/>
          <source socket='/tmp/sock'/>
+         <target dir='tag'/>
      </filesystem>
      ...
    </devices>
diff --git a/docs/kbase/virtiofs.rst b/docs/kbase/virtiofs.rst
index 8cf7567bf8..6ba7299a72 100644
--- a/docs/kbase/virtiofs.rst
+++ b/docs/kbase/virtiofs.rst
@@ -180,4 +180,5 @@ control and need to be set by the application running virtiofsd.
   <filesystem type='mount'/>
     <driver type='virtiofs' queue='1024'/>
     <source socket='/var/virtiofsd.sock'/>
+    <target dir='tag'/>
   </filesystem>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 139cdfc0a7..ef784575d2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9896,7 +9896,7 @@ virDomainFSDefParseXML(virDomainXMLOption *xmlopt,
         goto error;
     }
 
-    if (target == NULL && !sock) {
+    if (target == NULL) {
         virReportError(VIR_ERR_NO_TARGET,
                        source ? "%s" : NULL, source);
         goto error;
diff --git a/tests/qemuxml2argvdata/vhost-user-fs-sock.xml b/tests/qemuxml2argvdata/vhost-user-fs-sock.xml
index aef005d3fd..e5a380c9b6 100644
--- a/tests/qemuxml2argvdata/vhost-user-fs-sock.xml
+++ b/tests/qemuxml2argvdata/vhost-user-fs-sock.xml
@@ -29,6 +29,7 @@
     <filesystem type='mount'>
       <driver type='virtiofs' queue='1024'/>
       <source socket='/tmp/sock'/>
+      <target dir='tag'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
     </filesystem>
     <input type='mouse' bus='ps2'/>
-- 
2.31.1

Re: [libvirt PATCH 1/3] conf: require target for external virtiofsd
Posted by Peter Krempa 4 years, 7 months ago
On Wed, Jun 16, 2021 at 15:58:30 +0200, Ján Tomko wrote:
> When adding support for externally launched virtiofsd,
> I was too liberal and did not require a target.
> 
> But the target is required, because it's passed to the
> QEMU device, not to virtiofsd.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1969232
> 
> Fixes: 12967c3e1333a6e106110f449ccb1e96279b9527
> Signed-off-by: Ján Tomko <jtomko@redhat.com>
> ---
>  docs/formatdomain.rst                         | 1 +
>  docs/kbase/virtiofs.rst                       | 1 +
>  src/conf/domain_conf.c                        | 2 +-
>  tests/qemuxml2argvdata/vhost-user-fs-sock.xml | 1 +
>  4 files changed, 4 insertions(+), 1 deletion(-)

[...]

> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 139cdfc0a7..ef784575d2 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -9896,7 +9896,7 @@ virDomainFSDefParseXML(virDomainXMLOption *xmlopt,
>          goto error;
>      }
>  
> -    if (target == NULL && !sock) {
> +    if (target == NULL) {
>          virReportError(VIR_ERR_NO_TARGET,
>                         source ? "%s" : NULL, source);
>          goto error;

This will have to end up in a validation functions or existing configs
with missing target will vanish which is unacceptable.