[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in
From: |
Jeff Cody |
Subject: |
Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers |
Date: |
Thu, 13 Sep 2012 13:17:37 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0 |
On 09/13/2012 12:12 PM, Paolo Bonzini wrote:
> Il 13/09/2012 17:49, Jeff Cody ha scritto:
>> Block drivers should always open the files in writeback mode (see commit
>> e1e9b0ac), so raw-posix/raw-win32 should not parse the BDRV_O_CACHE_WB
>> flag.
>>
>> Signed-off-by: Jeff Cody <address@hidden>
>> ---
>> block/raw-posix.c | 3 ---
>> block/raw-win32.c | 3 ---
>> 2 files changed, 6 deletions(-)
>>
>> diff --git a/block/raw-posix.c b/block/raw-posix.c
>> index 7d3ac9d..4a1047c 100644
>> --- a/block/raw-posix.c
>> +++ b/block/raw-posix.c
>> @@ -202,9 +202,6 @@ static void raw_parse_flags(int bdrv_flags, int
>> *open_flags)
>> if ((bdrv_flags & BDRV_O_NOCACHE)) {
>> *open_flags |= O_DIRECT;
>> }
>> - if (!(bdrv_flags & BDRV_O_CACHE_WB)) {
>> - *open_flags |= O_DSYNC;
>> - }
>> }
>>
>> static int raw_set_aio(void **aio_ctx, int *use_aio, int bdrv_flags)
>> diff --git a/block/raw-win32.c b/block/raw-win32.c
>> index 335c06a..78c8306 100644
>> --- a/block/raw-win32.c
>> +++ b/block/raw-win32.c
>> @@ -92,9 +92,6 @@ static void raw_parse_flags(int flags, int *access_flags,
>> DWORD *overlapped)
>> if (flags & BDRV_O_NOCACHE) {
>> *overlapped |= FILE_FLAG_NO_BUFFERING;
>> }
>> - if (!(flags & BDRV_O_CACHE_WB)) {
>> - *overlapped |= FILE_FLAG_WRITE_THROUGH;
>> - }
>> }
>>
>> static int raw_open(BlockDriverState *bs, const char *filename, int flags)
>>
>
> Why does this matter? If raw-posix was opened directly (i.e. without
> the bs->file indirection) this would cause a writethrough file to be
> incorrectly opened as writeback.
>
> Paolo
>
The problem this patch was trying to work around is that
bdrv_open_common() forces BDRV_O_CACHE_WB (commit e1e9b0ac), but that
setting is not preserved in bs->open_flags, so it is lost on a reopen.
Is there a scenario currently that has raw-posix opened directly as a
writethrough file, or were you more concerned with future use?
- [Qemu-devel] [PATCH v2 00/16] block: bdrv_reopen() patches, Jeff Cody, 2012/09/13
- [Qemu-devel] [PATCH v2 01/16] block: correctly set the keep_read_only flag, Jeff Cody, 2012/09/13
- [Qemu-devel] [PATCH v2 02/16] block: make bdrv_set_enable_write_cache() modify open_flags, Jeff Cody, 2012/09/13
- [Qemu-devel] [PATCH v2 03/16] block: Framework for reopening files safely, Jeff Cody, 2012/09/13
- [Qemu-devel] [PATCH v2 04/16] block: move aio initialization into a helper function, Jeff Cody, 2012/09/13
- [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Jeff Cody, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Paolo Bonzini, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers,
Jeff Cody <=
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Paolo Bonzini, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Jeff Cody, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Paolo Bonzini, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Paolo Bonzini, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Jeff Cody, 2012/09/13
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Paolo Bonzini, 2012/09/14
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Kevin Wolf, 2012/09/14
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Kevin Wolf, 2012/09/14
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Paolo Bonzini, 2012/09/14
- Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers, Kevin Wolf, 2012/09/14