aboutsummaryrefslogtreecommitdiff
path: root/blockdev.h
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2011-01-26 12:12:32 -0200
committerKevin Wolf <kwolf@redhat.com>2011-02-07 12:55:26 +0100
commitddebe9d4736d6ebebe601e3691d5378a878df57c (patch)
treeaf47901d40b2e38b7752290070cba8886a280dc7 /blockdev.h
parentf17f8b687c789b78bb1f4b53afe5354c748047ed (diff)
blockdev: add refcount to DriveInfo
The host part of a block device can be deleted with in progress block migration. To fix this, add a reference count to DriveInfo, freeing resources on last reference. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> CC: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit 84fb392526479d54602a3830326d50d44657f630)
Diffstat (limited to 'blockdev.h')
-rw-r--r--blockdev.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/blockdev.h b/blockdev.h
index 84e462ab3f..2c9e7804c9 100644
--- a/blockdev.h
+++ b/blockdev.h
@@ -36,13 +36,15 @@ struct DriveInfo {
QemuOpts *opts;
char serial[BLOCK_SERIAL_STRLEN + 1];
QTAILQ_ENTRY(DriveInfo) next;
+ int refcount;
};
DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit);
DriveInfo *drive_get_by_index(BlockInterfaceType type, int index);
int drive_get_max_bus(BlockInterfaceType type);
DriveInfo *drive_get_next(BlockInterfaceType type);
-void drive_uninit(DriveInfo *dinfo);
+void drive_get_ref(DriveInfo *dinfo);
+void drive_put_ref(DriveInfo *dinfo);
DriveInfo *drive_get_by_blockdev(BlockDriverState *bs);
QemuOpts *drive_def(const char *optstr);