qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files s


From: Jeff Cody
Subject: Re: [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely
Date: Thu, 20 Sep 2012 08:55:16 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0

On 09/20/2012 07:24 AM, Kevin Wolf wrote:
> Am 18.09.2012 20:53, schrieb Jeff Cody:
>> This is based on Supriya Kannery's bdrv_reopen() patch series.
>>
>> This provides a transactional method to reopen multiple
>> images files safely.
>>
>> 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.
>>
>> 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
>>
>> Signed-off-by: Jeff Cody <address@hidden>
> 
>> 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;
>>  
>> +typedef QSIMPLEQ_HEAD(BlockReopenQueue, BlockReopenQueueEntry) 
>> BlockReopenQueue;
>> +
>> +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 »BDRVReopenState«
> qemu-common.h:248: Anmerkung: Vorherige Deklaration von
> »BDRVReopenState« war hier
> 

Looks like this has been relaxed in later versions of gcc - in 4.7.0 (what I am 
using under F17), it
compiled fine.  I'll change this though, so that it compiles under previous 
versions of gcc (and check
for any other such errors), and verify that under an older version of gcc.


>> --- 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
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]