summaryrefslogtreecommitdiffstats
path: root/block/export
diff options
context:
space:
mode:
Diffstat (limited to 'block/export')
-rw-r--r--block/export/export.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/block/export/export.c b/block/export/export.c
index 05bc5e3744..baba4e94ff 100644
--- a/block/export/export.c
+++ b/block/export/export.c
@@ -49,6 +49,20 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Error **errp)
return drv->create(export, errp);
}
+void blk_exp_ref(BlockExport *exp)
+{
+ assert(exp->refcount > 0);
+ exp->refcount++;
+}
+
+void blk_exp_unref(BlockExport *exp)
+{
+ assert(exp->refcount > 0);
+ if (--exp->refcount == 0) {
+ exp->drv->delete(exp);
+ }
+}
+
void qmp_block_export_add(BlockExportOptions *export, Error **errp)
{
blk_exp_add(export, errp);