qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 04/18] fuse: Add fuse-export-remove


From: Max Reitz
Subject: [PATCH 04/18] fuse: Add fuse-export-remove
Date: Thu, 19 Dec 2019 15:38:04 +0100

Signed-off-by: Max Reitz <address@hidden>
---
 block/fuse.c    | 16 ++++++++++++++++
 qapi/block.json | 15 +++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/block/fuse.c b/block/fuse.c
index f18e8e7591..4e662e6dfb 100644
--- a/block/fuse.c
+++ b/block/fuse.c
@@ -123,6 +123,22 @@ fail:
     close_fuse_session(session);
 }
 
+void qmp_fuse_export_remove(const char *mountpoint, Error **errp)
+{
+    BdrvFuseSession *session = NULL;
+
+    if (sessions) {
+        session = g_hash_table_lookup(sessions, mountpoint);
+    }
+
+    if (!session) {
+        error_setg(errp, "No export found on '%s'", mountpoint);
+        return;
+    }
+
+    g_hash_table_remove(sessions, mountpoint);
+}
+
 /**
  * Drop all FUSE exports.
  */
diff --git a/qapi/block.json b/qapi/block.json
index 03f8d1b537..26768dc8ef 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -340,6 +340,21 @@
   },
   'if': 'defined(CONFIG_FUSE)' }
 
+##
+# @fuse-export-remove:
+#
+# Unmount an exported block graph node.
+#
+# @mountpoint: The export path given to fuse-export-add
+#
+# Since: 5.0
+##
+{ 'command': 'fuse-export-remove',
+  'data': {
+      'mountpoint': 'str'
+  },
+  'if': 'defined(CONFIG_FUSE)' }
+
 ##
 # @DEVICE_TRAY_MOVED:
 #
-- 
2.23.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]