On 2015-01-28 at 11:52, Eric Blake wrote:
On 01/27/2015 12:46 PM, Max Reitz wrote:
This function associates the given BlockDriverState with the given
BlockBackend.
Signed-off-by: Max Reitz <mre...@redhat.com>
---
block/block-backend.c | 16 ++++++++++++++++
include/sysemu/block-backend.h | 1 +
2 files changed, 17 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index 760558f..656ebfc 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -312,6 +312,22 @@ void blk_hide_on_behalf_of_do_drive_del(BlockBackend *blk)
}
/*
+ * Associates a new BlockDriverState with @blk.
+ */
+void blk_insert_bs(BlockBackend *blk, BlockDriverState *bs)
+{
+ if (bs->blk == blk) {
+ return;
+ }
+
+ assert(!blk->bs);
I guess this interesting code allows for idempotent use of blk_insert_bs
more than once? What situations require that usage pattern?
Well, to be honest, there is no such requirement. I could (probably)
have just omitted the condition before the assertion; but I just felt
like it would be perfectly valid for this function to be idempotent
which is why the condition is there.
At any rate, the new function looks fine.
Reviewed-by: Eric Blake <ebl...@redhat.com>
Once again, thank you!
Max