On 07/11/2012 07:46 PM, Luiz Capitulino wrote:
On Sat, 16 Jun 2012 02:17:30 +0530
Supriya Kannery<supri...@linux.vnet.ibm.com>  wrote:

New command "block_set_hostcache" added for dynamically changing
host pagecache setting of a block device.

Usage:
  block_set_hostcache<device>  <option>
    <device>  = block device
    <option>  = on/off

Example:
  (qemu) block_set_hostcache ide0-hd0 off

Signed-off-by: Supriya Kannery<supri...@linux.vnet.ibm.com>

---
  block.c         |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
  block.h         |    2 ++
  blockdev.c      |   26 ++++++++++++++++++++++++++
  blockdev.h      |    2 ++
  hmp-commands.hx |   14 ++++++++++++++
  qmp-commands.hx |   27 +++++++++++++++++++++++++++
  6 files changed, 125 insertions(+)

Index: qemu/block.c
===================================================================
--- qemu.orig/block.c
+++ qemu/block.c
@@ -858,6 +858,35 @@ unlink_and_fail:
      return ret;
  }

+int bdrv_reopen(BlockDriverState *bs, int bdrv_flags)
+{
+    BlockDriver *drv = bs->drv;
+    int ret = 0, open_flags;
+
+    /* Quiesce IO for the given block device */
+    qemu_aio_flush();
+    ret = bdrv_flush(bs);
+    if (ret != 0) {
+        qerror_report(QERR_DATA_SYNC_FAILED, bs->device_name);

Please, use error_set() instead of qerror_report() and as Kevin said IOError
seems enough here.


Sure, will replace qemu_aio_flush() with bdrv_drain_all()
and qerror_report() with error_set().

Combination of bdrv_drain_all() and bdrv_flush(), should
help in flushing out the specific disk.

-thanks, Supriya


Reply via email to