On 07/11/2012 07:46 PM, Luiz Capitulino wrote:
On Sat, 16 Jun 2012 02:17:30 +0530 Supriya Kannery<[email protected]> 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<[email protected]> --- 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
