diff options
author | Max Reitz <mreitz@redhat.com> | 2019-05-07 22:35:06 +0200 |
---|---|---|
committer | Max Reitz <mreitz@redhat.com> | 2019-06-14 14:16:57 +0200 |
commit | 1adb0b5e0f7c5c4f707b1ffa98e2b15ef51ebbc5 (patch) | |
tree | 5fba9e1cb1d55a7dd38e17d805a49b77b8549e23 | |
parent | f8cec157cb7f04cb247786f8776ebfcebd9b61be (diff) | |
download | qemu-1adb0b5e0f7c5c4f707b1ffa98e2b15ef51ebbc5.zip qemu-1adb0b5e0f7c5c4f707b1ffa98e2b15ef51ebbc5.tar.gz qemu-1adb0b5e0f7c5c4f707b1ffa98e2b15ef51ebbc5.tar.bz2 |
blkdebug: Inject errors on .bdrv_co_block_status()
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-6-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
-rw-r--r-- | block/blkdebug.c | 8 | ||||
-rw-r--r-- | qapi/block-core.json | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/block/blkdebug.c b/block/blkdebug.c index 1663ed2..5ae96c5 100644 --- a/block/blkdebug.c +++ b/block/blkdebug.c @@ -670,7 +670,15 @@ static int coroutine_fn blkdebug_co_block_status(BlockDriverState *bs, int64_t *map, BlockDriverState **file) { + int err; + assert(QEMU_IS_ALIGNED(offset | bytes, bs->bl.request_alignment)); + + err = rule_check(bs, offset, bytes, BLKDEBUG_IO_TYPE_BLOCK_STATUS); + if (err) { + return err; + } + return bdrv_co_block_status_from_file(bs, want_zero, offset, bytes, pnum, map, file); } diff --git a/qapi/block-core.json b/qapi/block-core.json index 60f903a..6112443 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -3281,10 +3281,13 @@ # # @flush: .bdrv_co_flush_to_disk() # +# @block-status: .bdrv_co_block_status() +# # Since: 4.1 ## { 'enum': 'BlkdebugIOType', 'prefix': 'BLKDEBUG_IO_TYPE', - 'data': [ 'read', 'write', 'write-zeroes', 'discard', 'flush' ] } + 'data': [ 'read', 'write', 'write-zeroes', 'discard', 'flush', + 'block-status' ] } ## # @BlkdebugInjectErrorOptions: |