From 756e6736a12a46330d9532d5f861ba15b38886d8 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Tue, 12 Jan 2010 12:55:17 +0100 Subject: block: Add bdrv_change_backing_file Introduce the functions needed to change the backing file of an image. The function is implemented for qcow2. Signed-off-by: Kevin Wolf Signed-off-by: Anthony Liguori --- block.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'block.c') diff --git a/block.c b/block.c index 994109e0b9..c7bc83773a 100644 --- a/block.c +++ b/block.c @@ -597,6 +597,26 @@ int bdrv_commit(BlockDriverState *bs) return 0; } +/* + * Return values: + * 0 - success + * -EINVAL - backing format specified, but no file + * -ENOSPC - can't update the backing file because no space is left in the + * image file header + * -ENOTSUP - format driver doesn't support changing the backing file + */ +int bdrv_change_backing_file(BlockDriverState *bs, + const char *backing_file, const char *backing_fmt) +{ + BlockDriver *drv = bs->drv; + + if (drv->bdrv_change_backing_file != NULL) { + return drv->bdrv_change_backing_file(bs, backing_file, backing_fmt); + } else { + return -ENOTSUP; + } +} + static int bdrv_check_byte_request(BlockDriverState *bs, int64_t offset, size_t size) { -- cgit v1.2.3