[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL for-2.1 18/24] block: simplify bdrv_find_base() and b
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL for-2.1 18/24] block: simplify bdrv_find_base() and bdrv_find_overlay() |
Date: |
Tue, 1 Jul 2014 10:48:51 +0200 |
From: Jeff Cody <address@hidden>
This simplifies the function bdrv_find_overlay(). With this change,
bdrv_find_base() is just a subset of usage of bdrv_find_overlay(),
so this also takes advantage of that.
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block.c | 45 ++++++++++-----------------------------------
1 file changed, 10 insertions(+), 35 deletions(-)
diff --git a/block.c b/block.c
index 6856c18..c111c29 100644
--- a/block.c
+++ b/block.c
@@ -2508,32 +2508,23 @@ int bdrv_change_backing_file(BlockDriverState *bs,
*
* Returns NULL if bs is not found in active's image chain,
* or if active == bs.
+ *
+ * Returns the bottommost base image if bs == NULL.
*/
BlockDriverState *bdrv_find_overlay(BlockDriverState *active,
BlockDriverState *bs)
{
- BlockDriverState *overlay = NULL;
- BlockDriverState *intermediate;
-
- assert(active != NULL);
- assert(bs != NULL);
-
- /* if bs is the same as active, then by definition it has no overlay
- */
- if (active == bs) {
- return NULL;
+ while (active && bs != active->backing_hd) {
+ active = active->backing_hd;
}
- intermediate = active;
- while (intermediate->backing_hd) {
- if (intermediate->backing_hd == bs) {
- overlay = intermediate;
- break;
- }
- intermediate = intermediate->backing_hd;
- }
+ return active;
+}
- return overlay;
+/* Given a BDS, searches for the base layer. */
+BlockDriverState *bdrv_find_base(BlockDriverState *bs)
+{
+ return bdrv_find_overlay(bs, NULL);
}
typedef struct BlkIntermediateStates {
@@ -4326,22 +4317,6 @@ int bdrv_get_backing_file_depth(BlockDriverState *bs)
return 1 + bdrv_get_backing_file_depth(bs->backing_hd);
}
-BlockDriverState *bdrv_find_base(BlockDriverState *bs)
-{
- BlockDriverState *curr_bs = NULL;
-
- if (!bs) {
- return NULL;
- }
-
- curr_bs = bs;
-
- while (curr_bs->backing_hd) {
- curr_bs = curr_bs->backing_hd;
- }
- return curr_bs;
-}
-
/**************************************************************/
/* async I/Os */
--
1.9.3
- [Qemu-devel] [PULL for-2.1 10/24] virtio-blk: replace x-iothread with iothread link property, (continued)
- [Qemu-devel] [PULL for-2.1 10/24] virtio-blk: replace x-iothread with iothread link property, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 11/24] qdev: drop iothread property type, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 12/24] virtio-blk: remove need for explicit x-data-plane=on option, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 13/24] qemu-img create: add 'nocow' option, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 14/24] iotests: Simplify qemu-iotests-quick.sh, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 15/24] iotests: Add qemu tests to quick group, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 17/24] block: make 'top' argument to block-commit optional, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 16/24] iotests: Add more tests to quick group, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 18/24] block: simplify bdrv_find_base() and bdrv_find_overlay(),
Stefan Hajnoczi <=
- [Qemu-devel] [PULL for-2.1 19/24] block/cow: Avoid use of uninitialized cow_bs in error path, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 20/24] qapi: Change back sector-count to sectors-count in quorum QAPI events., Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 21/24] block: add QAPI command to allow live backing file change, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 23/24] block: extend block-commit to accept a string for the backing file, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 22/24] block: add helper function to determine if a BDS is in a chain, Stefan Hajnoczi, 2014/07/01
- [Qemu-devel] [PULL for-2.1 24/24] block: add backing-file option to block-stream, Stefan Hajnoczi, 2014/07/01