diff options
author | Jeff Cody <jcody@redhat.com> | 2012-09-27 13:29:15 -0400 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2012-09-28 18:23:44 +0200 |
commit | 79fac5680d3680c9fb43d14a8d4e39ced25530f8 (patch) | |
tree | f3f04e78df6c336f55c8d0fccc1847540fffc2de | |
parent | 9abf2dbaf6ae990c498ec0245986bddcd6b013ea (diff) |
block: helper function, to find the base image of a chain
This is a simple helper function, that will return the base image
of a given image chain.
Signed-off-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r-- | block.c | 16 | ||||
-rw-r--r-- | block.h | 1 |
2 files changed, 17 insertions, 0 deletions
@@ -3117,6 +3117,22 @@ 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; +} + #define NB_SUFFIXES 4 char *get_human_readable_size(char *buf, int buf_size, int64_t size) @@ -207,6 +207,7 @@ int bdrv_drop_intermediate(BlockDriverState *active, BlockDriverState *top, BlockDriverState *base); BlockDriverState *bdrv_find_overlay(BlockDriverState *active, BlockDriverState *bs); +BlockDriverState *bdrv_find_base(BlockDriverState *bs); typedef struct BdrvCheckResult { |