qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-block] [PATCH 01/20] block: Add bdrv_parse_cache_mode()


From: Kevin Wolf
Subject: [Qemu-block] [PATCH 01/20] block: Add bdrv_parse_cache_mode()
Date: Fri, 18 Mar 2016 19:21:10 +0100

It's like bdrv_parse_cache_flags(), except that writethrough mode isn't
included in the flags, but returned as a separate bool.

Signed-off-by: Kevin Wolf <address@hidden>
---
 block.c               | 17 +++++++++++++++++
 include/block/block.h |  1 +
 2 files changed, 18 insertions(+)

diff --git a/block.c b/block.c
index d319f86..172f865 100644
--- a/block.c
+++ b/block.c
@@ -661,6 +661,23 @@ 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 4adb1e9..823f4d7 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -206,6 +206,7 @@ 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,
                            QDict *options, const char *bdref_key,
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]