[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 12/36] block: sort BlockDeviceIoStatus errors by
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [RFC PATCH 12/36] block: sort BlockDeviceIoStatus errors by severity |
Date: |
Fri, 15 Jun 2012 17:05:35 +0200 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
block.c | 11 ++++++++---
qapi-schema.json | 2 +-
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/block.c b/block.c
index 4011ce4..2f6384a 100644
--- a/block.c
+++ b/block.c
@@ -4133,9 +4133,14 @@ void bdrv_iostatus_reset(BlockDriverState *bs)
void bdrv_iostatus_set_err(BlockDriverState *bs, int error)
{
assert(bdrv_iostatus_is_enabled(bs));
- if (bs->iostatus == BLOCK_DEVICE_IO_STATUS_OK) {
- bs->iostatus = error == ENOSPC ? BLOCK_DEVICE_IO_STATUS_NOSPACE :
- BLOCK_DEVICE_IO_STATUS_FAILED;
+ BlockDeviceIoStatus new_status =
+ (error == ENOSPC ? BLOCK_DEVICE_IO_STATUS_NOSPACE :
+ BLOCK_DEVICE_IO_STATUS_FAILED);
+
+ /* iostatus values are sorted from less severe to most severe
+ * (ok, nospace, failed). */
+ if (bs->iostatus < new_status) {
+ bs->iostatus = new_status;
}
}
diff --git a/qapi-schema.json b/qapi-schema.json
index b760bc8..d09d267 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -429,7 +429,7 @@
#
# Since: 1.0
##
-{ 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
+{ 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'nospace', 'failed' ] }
##
# @BlockInfo:
--
1.7.10.2
- [Qemu-devel] [RFC PATCH 04/36] block: add block_job_query, (continued)
- [Qemu-devel] [RFC PATCH 04/36] block: add block_job_query, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 03/36] block: move job APIs to separate files, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 06/36] qmp: add block-job-pause and block-job-resume, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 05/36] block: add support for job pause/resume, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 08/36] block: rename block_job_complete to block_job_completed, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 07/36] qemu-iotests: add test for pausing a streaming operation, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 10/36] block: move BlockdevOnError declaration to QAPI, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 09/36] block: rename BlockErrorAction, BlockQMPEventAction, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 12/36] block: sort BlockDeviceIoStatus errors by severity,
Paolo Bonzini <=
- [Qemu-devel] [RFC PATCH 11/36] block: reorganize io error code, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 15/36] qemu-iotests: add tests for streaming error handling, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 13/36] block: introduce block job error, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 20/36] block: forward bdrv_iostatus_reset to block job, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 21/36] block: introduce new dirty bitmap functionality, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 22/36] block: add mirror job, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 19/36] block: add target info to QMP query-blockjobs command, Paolo Bonzini, 2012/06/15