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 <jc...@redhat.com>
> ---
>  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

Reply via email to