From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Np38C-0002nT-7R for qemu-devel@nongnu.org; Tue, 09 Mar 2010 12:22:08 -0500 Received: from [199.232.76.173] (port=41410 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Np38B-0002lm-CQ for qemu-devel@nongnu.org; Tue, 09 Mar 2010 12:22:07 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1Np38A-0005y4-3j for qemu-devel@nongnu.org; Tue, 09 Mar 2010 12:22:07 -0500 Received: from mx1.redhat.com ([209.132.183.28]:63837) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Np389-0005xy-Nu for qemu-devel@nongnu.org; Tue, 09 Mar 2010 12:22:05 -0500 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o29HM4g2024165 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 9 Mar 2010 12:22:04 -0500 Message-ID: <4B9683BA.7050602@redhat.com> Date: Tue, 09 Mar 2010 11:22:02 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] qemu-img rebase: Add -f option References: <1267528471-7011-1-git-send-email-kwolf@redhat.com> In-Reply-To: <1267528471-7011-1-git-send-email-kwolf@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel@nongnu.org On 03/02/2010 05:14 AM, Kevin Wolf wrote: > Allow the user to specify the format of the image to rebase. > > Signed-off-by: Kevin Wolf > Applied. Thanks. Regards, Anthony Liguori > --- > qemu-img.c | 20 ++++++++++++++++---- > 1 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/qemu-img.c b/qemu-img.c > index 258dc62..7fc980a 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -1081,24 +1081,28 @@ static int img_snapshot(int argc, char **argv) > static int img_rebase(int argc, char **argv) > { > BlockDriverState *bs, *bs_old_backing, *bs_new_backing; > - BlockDriver *old_backing_drv, *new_backing_drv; > + BlockDriver *drv, *old_backing_drv, *new_backing_drv; > char *filename; > - const char *out_basefmt, *out_baseimg; > + const char *fmt, *out_basefmt, *out_baseimg; > int c, flags, ret; > int unsafe = 0; > > /* Parse commandline parameters */ > + fmt = NULL; > out_baseimg = NULL; > out_basefmt = NULL; > > for(;;) { > - c = getopt(argc, argv, "uhF:b:"); > + c = getopt(argc, argv, "uhf:F:b:"); > if (c == -1) > break; > switch(c) { > case 'h': > help(); > return 0; > + case 'f': > + fmt = optarg; > + break; > case 'F': > out_basefmt = optarg; > break; > @@ -1125,8 +1129,16 @@ static int img_rebase(int argc, char **argv) > if (!bs) > error("Not enough memory"); > > + drv = NULL; > + if (fmt) { > + drv = bdrv_find_format(fmt); > + if (drv == NULL) { > + error("Invalid format name: '%s'", fmt); > + } > + } > + > flags = BRDV_O_FLAGS | BDRV_O_RDWR | (unsafe ? BDRV_O_NO_BACKING : 0); > - if (bdrv_open2(bs, filename, flags, NULL)< 0) { > + if (bdrv_open2(bs, filename, flags, drv)< 0) { > error("Could not open '%s'", filename); > } > >