@@ -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.
*/
@@ -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:
#
Signed-off-by: Max Reitz <mreitz@redhat.com> --- block/fuse.c | 16 ++++++++++++++++ qapi/block.json | 15 +++++++++++++++ 2 files changed, 31 insertions(+)