[libvirt] [RFC PATCH 0/9] add virtiofs support (virtio-fs epopee)

Masayoshi Mizuma msys.mizuma at gmail.com
Thu Dec 12 14:18:23 UTC 2019


Hi Ján,

Could you add no_posix_lock and no_flock option for virtiofsd as well?
The sample patch is as follows:

---
 docs/schemas/domaincommon.rng | 10 ++++++++++
 src/conf/domain_conf.c        | 10 ++++++++++
 src/conf/domain_conf.h        |  2 ++
 src/qemu/qemu_extdevice.c     | 10 ++++++++++
 4 files changed, 32 insertions(+)

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index f6479c9..6dd8e2a 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -2523,6 +2523,16 @@
             <empty/>
           </element>
         </optional>
+        <optional>
+          <element name='no_posix_lock'>
+            <empty/>
+          </element>
+        </optional>
+        <optional>
+          <element name='no_flock'>
+            <empty/>
+          </element>
+        </optional>
         <optional>
           <ref name="alias"/>
         </optional>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2694e4b..8223910 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -11055,6 +11055,10 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt,
                 target = virXMLPropString(cur, "dir");
             } else if (virXMLNodeNameEqual(cur, "readonly")) {
                 def->readonly = true;
+            } else if (virXMLNodeNameEqual(cur, "no_posix_lock")) {
+                def->no_posix_lock = true;
+            } else if (virXMLNodeNameEqual(cur, "no_flock")) {
+                def->no_flock = true;
             } else if (virXMLNodeNameEqual(cur, "driver")) {
                 if (!fsdriver)
                     fsdriver = virXMLPropString(cur, "type");
@@ -24899,6 +24903,12 @@ virDomainFSDefFormat(virBufferPtr buf,
     if (def->readonly)
         virBufferAddLit(buf, "<readonly/>\n");
 
+    if (def->no_posix_lock)
+        virBufferAddLit(buf, "<no_posix_lock/>\n");
+
+    if (def->no_flock)
+        virBufferAddLit(buf, "<no_flock/>\n");
+
     if (virDomainDeviceInfoFormat(buf, &def->info, flags) < 0)
         goto cleanup;
 
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 78f88a0..8a60c8c 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -812,6 +812,8 @@ struct _virDomainFSDef {
     virStorageSourcePtr src;
     char *dst;
     bool readonly;
+    bool no_posix_lock;
+    bool no_flock;
     virDomainDeviceInfo info;
     unsigned long long space_hard_limit; /* in bytes */
     unsigned long long space_soft_limit; /* in bytes */
diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
index 634a3fb..618a886 100644
--- a/src/qemu/qemu_extdevice.c
+++ b/src/qemu/qemu_extdevice.c
@@ -242,6 +242,16 @@ qemuExtVirtioFSdStart(virQEMUDriverPtr driver,
     virCommandAddArgFormat(cmd, "source=%s", fs->src->path);
     virCommandAddArg(cmd, "-d");
 
+    if (fs->no_posix_lock) {
+        virCommandAddArg(cmd, "-o");
+        virCommandAddArg(cmd, "no_posix_lock");
+    }
+
+    if (fs->no_flock) {
+        virCommandAddArg(cmd, "-o");
+        virCommandAddArg(cmd, "no_flock");
+    }
+
     if (qemuExtDeviceLogCommand(driver, vm, cmd, "virtiofsd") < 0)
         goto cleanup;
 
-- 
2.18.1





More information about the libvir-list mailing list