2019-05-02 00:51:10 +02:00
|
|
|
From: Bruce Rogers <brogers@suse.com>
|
|
|
|
Date: Wed, 9 Mar 2016 15:18:11 -0700
|
|
|
|
Subject: xen_disk: Add suse specific flush disable handling and map to QEMU
|
|
|
|
equiv
|
|
|
|
|
|
|
|
Add code to read the suse specific suse-diskcache-disable-flush flag out
|
|
|
|
of xenstore, and set the equivalent flag within QEMU.
|
|
|
|
|
|
|
|
Patch taken from Xen's patch queue, Olaf Hering being the original author.
|
|
|
|
[bsc#879425]
|
|
|
|
|
|
|
|
[BR: minor edits to pass qemu's checkpatch script]
|
|
|
|
[BR: With qdevification of xen-block, code has changed significantly]
|
|
|
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
|
|
|
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
|
|
|
---
|
|
|
|
hw/block/xen-block.c | 12 ++++++++++++
|
|
|
|
1 file changed, 12 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
|
2019-11-27 13:46:32 +01:00
|
|
|
index 879fc310a4c5dfa4a7d8936f7d8e..0007ee64c75f38a2a3256f0b9462 100644
|
2019-05-02 00:51:10 +02:00
|
|
|
--- a/hw/block/xen-block.c
|
|
|
|
+++ b/hw/block/xen-block.c
|
2019-11-27 13:46:32 +01:00
|
|
|
@@ -743,6 +743,8 @@ static XenBlockDrive *xen_block_drive_create(const char *id,
|
2019-05-02 00:51:10 +02:00
|
|
|
const char *mode = qdict_get_try_str(opts, "mode");
|
|
|
|
const char *direct_io_safe = qdict_get_try_str(opts, "direct-io-safe");
|
|
|
|
const char *discard_enable = qdict_get_try_str(opts, "discard-enable");
|
|
|
|
+ const char *suse_diskcache_disable_flush = qdict_get_try_str(opts,
|
|
|
|
+ "suse-diskcache-disable-flush");
|
|
|
|
char *driver = NULL;
|
|
|
|
char *filename = NULL;
|
|
|
|
XenBlockDrive *drive = NULL;
|
2019-11-27 13:46:32 +01:00
|
|
|
@@ -812,6 +814,16 @@ static XenBlockDrive *xen_block_drive_create(const char *id,
|
2019-05-02 00:51:10 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
+ if (suse_diskcache_disable_flush) {
|
|
|
|
+ unsigned long value;
|
|
|
|
+ if (!qemu_strtoul(suse_diskcache_disable_flush, NULL, 2, &value) && !!value) {
|
|
|
|
+ QDict *cache_qdict = qdict_new();
|
|
|
|
+
|
|
|
|
+ qdict_put_bool(cache_qdict, "no-flush", true);
|
|
|
|
+ qdict_put_obj(file_layer, "cache", QOBJECT(cache_qdict));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
/*
|
|
|
|
* It is necessary to turn file locking off as an emulated device
|
|
|
|
* may have already opened the same image file.
|