diff options
-rw-r--r-- | block.c | 29 | ||||
-rw-r--r-- | include/block/block.h | 1 |
2 files changed, 7 insertions, 23 deletions
@@ -645,21 +645,23 @@ int bdrv_parse_discard_flags(const char *mode, int *flags) * * Return 0 on success, -1 if the cache mode was invalid. */ -int bdrv_parse_cache_flags(const char *mode, int *flags) +int bdrv_parse_cache_mode(const char *mode, int *flags, bool *writethrough) { *flags &= ~BDRV_O_CACHE_MASK; if (!strcmp(mode, "off") || !strcmp(mode, "none")) { - *flags |= BDRV_O_NOCACHE | BDRV_O_CACHE_WB; + *writethrough = false; + *flags |= BDRV_O_NOCACHE; } else if (!strcmp(mode, "directsync")) { + *writethrough = true; *flags |= BDRV_O_NOCACHE; } else if (!strcmp(mode, "writeback")) { - *flags |= BDRV_O_CACHE_WB; + *writethrough = false; } else if (!strcmp(mode, "unsafe")) { - *flags |= BDRV_O_CACHE_WB; + *writethrough = false; *flags |= BDRV_O_NO_FLUSH; } else if (!strcmp(mode, "writethrough")) { - /* this is the default */ + *writethrough = true; } else { return -1; } @@ -667,23 +669,6 @@ int bdrv_parse_cache_flags(const char *mode, int *flags) return 0; } -int bdrv_parse_cache_mode(const char *mode, int *flags, bool *writethrough) -{ - int ret = bdrv_parse_cache_flags(mode, flags); - if (ret < 0) { - return ret; - } - - if (*flags & BDRV_O_CACHE_WB) { - *flags &= ~BDRV_O_CACHE_WB; - *writethrough = false; - } else { - *writethrough = true; - } - - return 0; -} - /* * Returns the options and flags that a temporary snapshot should get, based on * the originally requested flags (the originally requested image will have diff --git a/include/block/block.h b/include/block/block.h index ddfd50abd5..738eeb6ffa 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -208,7 +208,6 @@ void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top); void bdrv_replace_in_backing_chain(BlockDriverState *old, BlockDriverState *new); -int bdrv_parse_cache_flags(const char *mode, int *flags); int bdrv_parse_cache_mode(const char *mode, int *flags, bool *writethrough); int bdrv_parse_discard_flags(const char *mode, int *flags); BdrvChild *bdrv_open_child(const char *filename, |