From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60851) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEerf-00078c-2w for qemu-devel@nongnu.org; Thu, 20 Sep 2012 07:24:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TEerY-0004D7-V4 for qemu-devel@nongnu.org; Thu, 20 Sep 2012 07:24:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:20005) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TEerY-0004Cq-LY for qemu-devel@nongnu.org; Thu, 20 Sep 2012 07:24:08 -0400 Message-ID: <505AFCD2.9020805@redhat.com> Date: Thu, 20 Sep 2012 13:24:02 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <24009c103b415884ba4a0b885da59a0d523b6047.1347993885.git.jcody@redhat.com> In-Reply-To: <24009c103b415884ba4a0b885da59a0d523b6047.1347993885.git.jcody@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jeff Cody Cc: stefanha@gmail.com, pbonzini@redhat.com, eblake@redhat.com, qemu-devel@nongnu.org, supriyak@linux.vnet.ibm.com Am 18.09.2012 20:53, schrieb Jeff Cody: > This is based on Supriya Kannery's bdrv_reopen() patch series. >=20 > This provides a transactional method to reopen multiple > images files safely. >=20 > Image files are queue for reopen via bdrv_reopen_queue(), and the > reopen occurs when bdrv_reopen_multiple() is called. Changes are > staged in bdrv_reopen_prepare() and in the equivalent driver level > functions. If any of the staged images fails a prepare, then all > of the images left untouched, and the staged changes for each image > abandoned. >=20 > Block drivers are passed a reopen state structure, that contains: > * BDS to reopen > * flags for the reopen > * opaque pointer for any driver-specific data that needs to be > persistent from _prepare to _commit/_abort > * reopen queue pointer, if the driver needs to queue additional > BDS for a reopen >=20 > Signed-off-by: Jeff Cody > diff --git a/block.h b/block.h > index 4d919c2..b1095d8 100644 > --- a/block.h > +++ b/block.h > @@ -97,6 +97,15 @@ typedef enum { > BDRV_ACTION_REPORT, BDRV_ACTION_IGNORE, BDRV_ACTION_STOP > } BlockQMPEventAction; > =20 > +typedef QSIMPLEQ_HEAD(BlockReopenQueue, BlockReopenQueueEntry) BlockRe= openQueue; > + > +typedef struct BDRVReopenState { > + BlockDriverState *bs; > + int flags; > + void *opaque; > +} BDRVReopenState; Doesn't compile, it should be typedefed only once: In file included from monitor.h:8, from qemu-timer.c:27: block.h:106: Fehler: Redefinition des typedef =BBBDRVReopenState=AB qemu-common.h:248: Anmerkung: Vorherige Deklaration von =BBBDRVReopenState=AB war hier > --- a/qemu-common.h > +++ b/qemu-common.h > @@ -245,6 +245,7 @@ typedef struct NICInfo NICInfo; > typedef struct HCIInfo HCIInfo; > typedef struct AudioState AudioState; > typedef struct BlockDriverState BlockDriverState; > +typedef struct BDRVReopenState BDRVReopenState; > typedef struct DriveInfo DriveInfo; > typedef struct DisplayState DisplayState; > typedef struct DisplayChangeListener DisplayChangeListener; Kevin