From: Jeff Cody <jcody@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: stefanha@gmail.com, pbonzini@redhat.com, eblake@redhat.com,
qemu-devel@nongnu.org, supriyak@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely
Date: Thu, 20 Sep 2012 08:55:16 -0400 [thread overview]
Message-ID: <505B1234.8050303@redhat.com> (raw)
In-Reply-To: <505AFCD2.9020805@redhat.com>
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 <jcody@redhat.com>
>
>> 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
>
next prev parent reply other threads:[~2012-09-20 12:55 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 18:53 [Qemu-devel] [PATCH v3 00/19] block: bdrv_reopen() patches Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 01/19] block: correctly set the keep_read_only flag Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 02/19] block: make bdrv_set_enable_write_cache() modify open_flags Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely Jeff Cody
2012-09-20 11:24 ` Kevin Wolf
2012-09-20 12:55 ` Jeff Cody [this message]
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 04/19] block: move aio initialization into a helper function Jeff Cody
2012-09-20 13:14 ` Kevin Wolf
2012-09-20 14:49 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 05/19] block: move open flag parsing in raw block drivers to helper functions Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 06/19] block: do not parse BDRV_O_CACHE_WB in block drivers Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 07/19] block: use BDRV_O_NOCACHE instead of s->aligned_buf in raw-posix.c Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 08/19] block: purge s->aligned_buf and s->aligned_buf_size from raw-posix.c Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 09/19] block: raw-posix image file reopen Jeff Cody
2012-09-18 21:20 ` Eric Blake
2012-09-18 22:20 ` Jeff Cody
2012-09-20 14:10 ` Kevin Wolf
2012-09-20 14:45 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 10/19] block: raw " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 11/19] block: qed " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 12/19] block: qcow2 " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 13/19] block: qcow " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 14/19] block: vmdk " Jeff Cody
2012-09-20 14:12 ` Kevin Wolf
2012-09-20 14:49 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 15/19] block: raw-win32 driver reopen support Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 16/19] block: vdi image file reopen Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 17/19] block: vpc " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 18/19] block: convert bdrv_commit() to use bdrv_reopen() Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 19/19] block: remove keep_read_only flag from BlockDriverState struct Jeff Cody
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=505B1234.8050303@redhat.com \
--to=jcody@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=supriyak@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).