From d6bf279e7a949ad49a48a215f9ec28cb6ceb28aa Mon Sep 17 00:00:00 2001 From: Luiz Capitulino Date: Fri, 14 Oct 2011 17:11:23 -0300 Subject: [PATCH] block: iostatus: Drop BDRV_IOS_INVAL A future commit will convert bdrv_info() to the QAPI and it won't provide IOS_INVAL. Luckily all we have to do is to add a new 'iostatus_enabled' member to BlockDriverState and use it instead. Signed-off-by: Luiz Capitulino --- block.c | 5 +++-- block.h | 3 +-- block_int.h | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/block.c b/block.c index 70aab63e4b..4dc2b85b86 100644 --- a/block.c +++ b/block.c @@ -3139,6 +3139,7 @@ int bdrv_in_use(BlockDriverState *bs) void bdrv_iostatus_enable(BlockDriverState *bs) { + bs->iostatus_enabled = true; bs->iostatus = BDRV_IOS_OK; } @@ -3146,7 +3147,7 @@ void bdrv_iostatus_enable(BlockDriverState *bs) * enables it _and_ the VM is configured to stop on errors */ bool bdrv_iostatus_is_enabled(const BlockDriverState *bs) { - return (bs->iostatus != BDRV_IOS_INVAL && + return (bs->iostatus_enabled && (bs->on_write_error == BLOCK_ERR_STOP_ENOSPC || bs->on_write_error == BLOCK_ERR_STOP_ANY || bs->on_read_error == BLOCK_ERR_STOP_ANY)); @@ -3154,7 +3155,7 @@ bool bdrv_iostatus_is_enabled(const BlockDriverState *bs) void bdrv_iostatus_disable(BlockDriverState *bs) { - bs->iostatus = BDRV_IOS_INVAL; + bs->iostatus_enabled = false; } void bdrv_iostatus_reset(BlockDriverState *bs) diff --git a/block.h b/block.h index 5a042c96e7..1823e93801 100644 --- a/block.h +++ b/block.h @@ -78,8 +78,7 @@ typedef enum { } BlockMonEventAction; typedef enum { - BDRV_IOS_INVAL, BDRV_IOS_OK, BDRV_IOS_FAILED, BDRV_IOS_ENOSPC, - BDRV_IOS_MAX + BDRV_IOS_OK, BDRV_IOS_FAILED, BDRV_IOS_ENOSPC, BDRV_IOS_MAX } BlockIOStatus; void bdrv_iostatus_enable(BlockDriverState *bs); diff --git a/block_int.h b/block_int.h index dac00f504f..3929ec90a5 100644 --- a/block_int.h +++ b/block_int.h @@ -202,6 +202,7 @@ struct BlockDriverState { drivers. They are not used by the block driver */ int cyls, heads, secs, translation; BlockErrorAction on_read_error, on_write_error; + bool iostatus_enabled; BlockIOStatus iostatus; char device_name[32]; unsigned long *dirty_bitmap;