50 lines
1.6 KiB
Diff
50 lines
1.6 KiB
Diff
|
|
From 652325f9a04143ffabf5e9a418253a05e927ec37 Mon Sep 17 00:00:00 2001
|
||
|
|
From: WangJian <wangjian161@huawei.com>
|
||
|
|
Date: Wed, 9 Feb 2022 11:18:21 +0800
|
||
|
|
Subject: [PATCH] block: enable cache mode of empty cdrom
|
||
|
|
|
||
|
|
enable cache mode even if cdrom is empty
|
||
|
|
|
||
|
|
Signed-off-by: wangjian161 <wangjian161@huawei.com>
|
||
|
|
---
|
||
|
|
blockdev.c | 16 ++++++++++++++++
|
||
|
|
1 file changed, 16 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/blockdev.c b/blockdev.c
|
||
|
|
index c91f49e7b6..bc2099e9da 100644
|
||
|
|
--- a/blockdev.c
|
||
|
|
+++ b/blockdev.c
|
||
|
|
@@ -493,6 +493,7 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
|
||
|
|
QDict *interval_dict = NULL;
|
||
|
|
QList *interval_list = NULL;
|
||
|
|
const char *id;
|
||
|
|
+ const char *cache;
|
||
|
|
BlockdevDetectZeroesOptions detect_zeroes =
|
||
|
|
BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF;
|
||
|
|
const char *throttling_group = NULL;
|
||
|
|
@@ -580,6 +581,21 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
|
||
|
|
|
||
|
|
read_only = qemu_opt_get_bool(opts, BDRV_OPT_READ_ONLY, false);
|
||
|
|
|
||
|
|
+ if (!file || !*file) {
|
||
|
|
+ cache = qdict_get_try_str(bs_opts, BDRV_OPT_CACHE_NO_FLUSH);
|
||
|
|
+ if (cache && !strcmp(cache, "on")) {
|
||
|
|
+ bdrv_flags |= BDRV_O_NO_FLUSH;
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ cache = qdict_get_try_str(bs_opts, BDRV_OPT_CACHE_DIRECT);
|
||
|
|
+ if (cache && !strcmp(cache, "on")) {
|
||
|
|
+ bdrv_flags |= BDRV_O_NOCACHE;
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ qdict_del(bs_opts, BDRV_OPT_CACHE_NO_FLUSH);
|
||
|
|
+ qdict_del(bs_opts, BDRV_OPT_CACHE_DIRECT);
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
/* init */
|
||
|
|
if ((!file || !*file) && !qdict_size(bs_opts)) {
|
||
|
|
BlockBackendRootState *blk_rs;
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|