[Top][All Lists]
[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: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely |
Date: |
Thu, 20 Sep 2012 13:24:02 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120605 Thunderbird/13.0 |
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
> --- 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
- [Qemu-devel] [PATCH v3 00/19] block: bdrv_reopen() patches, Jeff Cody, 2012/09/18
- [Qemu-devel] [PATCH v3 04/19] block: move aio initialization into a helper function, Jeff Cody, 2012/09/18
- [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely, Jeff Cody, 2012/09/18
- Re: [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely,
Kevin Wolf <=
- [Qemu-devel] [PATCH v3 05/19] block: move open flag parsing in raw block drivers to helper functions, Jeff Cody, 2012/09/18
- [Qemu-devel] [PATCH v3 06/19] block: do not parse BDRV_O_CACHE_WB in block drivers, Jeff Cody, 2012/09/18
- [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
- [Qemu-devel] [PATCH v3 09/19] block: raw-posix image file reopen, Jeff Cody, 2012/09/18
- [Qemu-devel] [PATCH v3 10/19] block: raw image file reopen, Jeff Cody, 2012/09/18