From patchwork Fri Dec 30 10:03:39 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcelo Tosatti X-Patchwork-Id: 133624 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 53A0CB6FC4 for ; Fri, 30 Dec 2011 21:07:26 +1100 (EST) Received: from localhost ([::1]:52059 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgZMo-0005oY-0x for incoming@patchwork.ozlabs.org; Fri, 30 Dec 2011 05:07:14 -0500 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 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pBUA6xHM003354 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 30 Dec 2011 05:06:59 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id pBUA6weu013210; Fri, 30 Dec 2011 05:06:58 -0500 Received: from amt.cnet (vpn-8-148.rdu.redhat.com [10.11.8.148]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id pBUA6vRY008806; Fri, 30 Dec 2011 05:06:57 -0500 Received: from amt.cnet (amt.cnet [127.0.0.1]) by amt.cnet (Postfix) with ESMTP id 76E05652317; Fri, 30 Dec 2011 08:05:51 -0200 (BRST) Received: (from marcelo@localhost) by amt.cnet (8.14.5/8.14.5/Submit) id pBUA5pVI003712; Fri, 30 Dec 2011 08:05:51 -0200 Message-Id: <20111230100503.375631440@redhat.com> User-Agent: quilt/0.48-1 Date: Fri, 30 Dec 2011 08:03:39 -0200 From: Marcelo Tosatti To: stefanha@linux.vnet.ibm.com, kwolf@redhat.com, qemu-devel@nongnu.org References: <20111230100337.226685961@redhat.com> Content-Disposition: inline; filename=bdrv-stream-shared-base-helper-backend X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 209.132.183.28 Cc: Marcelo Tosatti Subject: [Qemu-devel] [patch 2/5] block: implement bdrv_find_backing_image in qcow2 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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,