summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlberto Garcia2015-11-02 15:51:54 +0100
committerMax Reitz2015-11-11 16:55:28 +0100
commitf636ae85f3db8ffb987c79715869dba1b8217e8a (patch)
treedaeb2608974bf96485f3ec7b0aeda178d701a648
parentmirror: block all operations on the target image during the job (diff)
downloadqemu-f636ae85f3db8ffb987c79715869dba1b8217e8a.tar.gz
qemu-f636ae85f3db8ffb987c79715869dba1b8217e8a.tar.xz
qemu-f636ae85f3db8ffb987c79715869dba1b8217e8a.zip
block: Add blk_get_refcnt()
This function returns the reference count of a given BlockBackend. For convenience, it returns 0 if the BlockBackend pointer is NULL. Signed-off-by: Alberto Garcia <berto@igalia.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: dfdd8a17dbe3288842840636d2cfe5bb895abcb0.1446475331.git.berto@igalia.com Signed-off-by: Max Reitz <mreitz@redhat.com>
-rw-r--r--block/block-backend.c5
-rw-r--r--include/sysemu/block-backend.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/block/block-backend.c b/block/block-backend.c
index 1ac69824ca..6f9309fef4 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -189,6 +189,11 @@ static void drive_info_del(DriveInfo *dinfo)
g_free(dinfo);
}
+int blk_get_refcnt(BlockBackend *blk)
+{
+ return blk ? blk->refcnt : 0;
+}
+
/*
* Increment @blk's reference count.
* @blk must not be null.
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
index 40e315b5bb..f4a68e291b 100644
--- a/include/sysemu/block-backend.h
+++ b/include/sysemu/block-backend.h
@@ -65,6 +65,7 @@ BlockBackend *blk_new_with_bs(const char *name, Error **errp);
BlockBackend *blk_new_open(const char *name, const char *filename,
const char *reference, QDict *options, int flags,
Error **errp);
+int blk_get_refcnt(BlockBackend *blk);
void blk_ref(BlockBackend *blk);
void blk_unref(BlockBackend *blk);
const char *blk_name(BlockBackend *blk);