From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:38621) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgZMf-0005oC-Du for qemu-devel@nongnu.org; Fri, 30 Dec 2011 05:07:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RgZMc-0003L9-VZ for qemu-devel@nongnu.org; Fri, 30 Dec 2011 05:07:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49935) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgZMc-0003KW-OJ for qemu-devel@nongnu.org; Fri, 30 Dec 2011 05:07:02 -0500 Message-Id: <20111230100503.375631440@redhat.com> Date: Fri, 30 Dec 2011 08:03:39 -0200 From: Marcelo Tosatti References: <20111230100337.226685961@redhat.com> Content-Disposition: inline; filename=bdrv-stream-shared-base-helper-backend Subject: [Qemu-devel] [patch 2/5] block: implement bdrv_find_backing_image in qcow2 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: stefanha@linux.vnet.ibm.com, kwolf@redhat.com, qemu-devel@nongnu.org Cc: Marcelo Tosatti Signed-off-by: Marcelo Tosatti Index: stefanha/block/qcow2.c =================================================================== --- stefanha.orig/block/qcow2.c +++ stefanha/block/qcow2.c @@ -767,6 +767,20 @@ static int qcow2_change_backing_file(Blo return qcow2_update_ext_header(bs, backing_file, backing_fmt); } +static BlockDriverState *qcow2_find_backing_image(BlockDriverState *bs, + const char *id) +{ + + do { + if (!strncmp(bs->backing_file, id, sizeof(bs->backing_file))) + return bs->backing_hd; + + bs = bs->backing_hd; + } while (bs); + + return NULL; +} + static int preallocate(BlockDriverState *bs) { uint64_t nb_sectors; @@ -1304,6 +1318,7 @@ static BlockDriver bdrv_qcow2 = { .bdrv_load_vmstate = qcow2_load_vmstate, .bdrv_change_backing_file = qcow2_change_backing_file, + .bdrv_find_backing_image = qcow2_find_backing_image, .bdrv_invalidate_cache = qcow2_invalidate_cache,