Maintaining similar logic of flushing caches in both qcow2_inactivate() and in qcow2_flush_caches() is not good.
Let's refactor things to use qcow2_flush_caches() directly from qcow2_inactivate(). For this we need two things: textual error messages (add Error **) and possibility to unconditionally flush refcounts (add force_refcounts argument). Iotests output updated correspondingly. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/qcow2.h | 6 +- block/qcow2-bitmap.c | 2 +- block/qcow2-refcount.c | 22 +++++-- block/qcow2.c | 25 +++----- tests/qemu-iotests/026.out | 126 +++++++++++++------------------------ tests/qemu-iotests/071.out | 3 +- tests/qemu-iotests/080.out | 4 +- 7 files changed, 76 insertions(+), 112 deletions(-) diff --git a/block/qcow2.h b/block/qcow2.h index fd48a89d45..a83183d533 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -874,8 +874,10 @@ void qcow2_free_any_cluster(BlockDriverState *bs, uint64_t l2_entry, int qcow2_update_snapshot_refcount(BlockDriverState *bs, int64_t l1_table_offset, int l1_size, int addend); -int coroutine_fn qcow2_flush_caches(BlockDriverState *bs); -int coroutine_fn qcow2_write_caches(BlockDriverState *bs); +int coroutine_fn qcow2_flush_caches(BlockDriverState *bs, bool force_refcounts, + Error **errp); +int coroutine_fn qcow2_write_caches(BlockDriverState *bs, bool force_refcounts, + Error **errp); int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckMode fix); diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c index 8fb4731551..0f463ced4e 100644 --- a/block/qcow2-bitmap.c +++ b/block/qcow2-bitmap.c @@ -899,7 +899,7 @@ static int update_ext_header_and_dir(BlockDriverState *bs, return ret; } - ret = qcow2_flush_caches(bs); + ret = qcow2_flush_caches(bs, false, NULL); if (ret < 0) { goto fail; } diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index 4614572252..c8251412ce 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -1203,19 +1203,23 @@ void qcow2_free_any_cluster(BlockDriverState *bs, uint64_t l2_entry, } } -int coroutine_fn qcow2_write_caches(BlockDriverState *bs) +int coroutine_fn qcow2_write_caches(BlockDriverState *bs, bool force_refcounts, + Error **errp) { BDRVQcow2State *s = bs->opaque; int ret; ret = qcow2_cache_write(bs, s->l2_table_cache); if (ret < 0) { + error_setg_errno(errp, -ret, "Failed to write the L2 table cache"); return ret; } - if (qcow2_need_accurate_refcounts(s)) { + if (force_refcounts || qcow2_need_accurate_refcounts(s)) { ret = qcow2_cache_write(bs, s->refcount_block_cache); if (ret < 0) { + error_setg_errno(errp, -ret, + "Failed to write the refcount block cache"); return ret; } } @@ -1223,14 +1227,22 @@ int coroutine_fn qcow2_write_caches(BlockDriverState *bs) return 0; } -int coroutine_fn qcow2_flush_caches(BlockDriverState *bs) +int coroutine_fn qcow2_flush_caches(BlockDriverState *bs, bool force_refcounts, + Error **errp) { - int ret = qcow2_write_caches(bs); + int ret = qcow2_write_caches(bs, force_refcounts, errp); if (ret < 0) { return ret; } - return bdrv_flush(bs->file->bs); + ret = bdrv_flush(bs->file->bs); + if (ret < 0) { + error_setg_errno(errp, -ret, + "Failed to flush after writing caches"); + return ret; + } + + return 0; } /*********************************************************/ diff --git a/block/qcow2.c b/block/qcow2.c index 614df0307f..04994df240 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -544,7 +544,7 @@ static int qcow2_mark_clean(BlockDriverState *bs) s->incompatible_features &= ~QCOW2_INCOMPAT_DIRTY; - ret = qcow2_flush_caches(bs); + ret = qcow2_flush_caches(bs, false, NULL); if (ret < 0) { return ret; } @@ -574,7 +574,7 @@ int qcow2_mark_consistent(BlockDriverState *bs) BDRVQcow2State *s = bs->opaque; if (s->incompatible_features & QCOW2_INCOMPAT_CORRUPT) { - int ret = qcow2_flush_caches(bs); + int ret = qcow2_flush_caches(bs, false, NULL); if (ret < 0) { return ret; } @@ -2680,7 +2680,6 @@ fail_nometa: static int qcow2_inactivate(BlockDriverState *bs) { - BDRVQcow2State *s = bs->opaque; int ret, result = 0; Error *local_err = NULL; @@ -2690,20 +2689,14 @@ static int qcow2_inactivate(BlockDriverState *bs) error_reportf_err(local_err, "Lost persistent bitmaps during " "inactivation of node '%s': ", bdrv_get_device_or_node_name(bs)); + local_err = NULL; } - ret = qcow2_cache_flush(bs, s->l2_table_cache); - if (ret) { + ret = qcow2_flush_caches(bs, true, &local_err); + if (ret < 0) { result = ret; - error_report("Failed to flush the L2 table cache: %s", - strerror(-ret)); - } - - ret = qcow2_cache_flush(bs, s->refcount_block_cache); - if (ret) { - result = ret; - error_report("Failed to flush the refcount block cache: %s", - strerror(-ret)); + error_report_err(local_err); + local_err = NULL; } if (result == 0) { @@ -4517,7 +4510,7 @@ static int coroutine_fn qcow2_co_truncate(BlockDriverState *bs, int64_t offset, if (prealloc != PREALLOC_MODE_OFF) { /* Flush metadata before actually changing the image size */ - ret = qcow2_write_caches(bs); + ret = qcow2_write_caches(bs, false, NULL); if (ret < 0) { error_setg_errno(errp, -ret, "Failed to flush the preallocated area to disk"); @@ -4936,7 +4929,7 @@ static coroutine_fn int qcow2_co_flush_to_os(BlockDriverState *bs) int ret; qemu_co_mutex_lock(&s->lock); - ret = qcow2_write_caches(bs); + ret = qcow2_write_caches(bs, false, NULL); qemu_co_mutex_unlock(&s->lock); return ret; diff --git a/tests/qemu-iotests/026.out b/tests/qemu-iotests/026.out index 83989996ff..cdc1ed2748 100644 --- a/tests/qemu-iotests/026.out +++ b/tests/qemu-iotests/026.out @@ -14,15 +14,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_update; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_update; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -38,15 +36,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_update; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_update; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -126,15 +122,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_update; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the L2 table cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_update; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the L2 table cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -150,15 +144,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_update; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_update; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -174,15 +166,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_alloc_write; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_alloc_write; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -198,15 +188,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_alloc_write; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_alloc_write; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -222,15 +210,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: write_aio; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: write_aio; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -246,15 +232,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: write_aio; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: write_aio; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -270,15 +254,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_load; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_load; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -294,15 +276,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_load; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_load; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -318,15 +298,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_update_part; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_update_part; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -342,15 +320,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_update_part; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_update_part; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -366,15 +342,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc; errno: 5; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc; errno: 5; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -390,15 +364,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -457,15 +429,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_hookup; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_hookup; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -481,15 +451,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -505,15 +473,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -529,15 +495,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write_table; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write_table; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -553,15 +517,13 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_switch_table; errno: 28; imm: off; once: off; write -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_switch_table; errno: 28; imm: off; once: off; write -b -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the L2 table cache: No space left on device write failed: No space left on device No errors were found on the image. @@ -595,8 +557,7 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_grow_write_table; errno: 5; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -607,8 +568,7 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_grow_write_table; errno: 28; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -619,8 +579,7 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_grow_activate_table; errno: 5; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: Input/output error -qemu-io: Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to write the refcount block cache: Input/output error write failed: Input/output error No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -631,8 +590,7 @@ No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_grow_activate_table; errno: 28; imm: off; once: off -qemu-io: Failed to flush the L2 table cache: No space left on device -qemu-io: Failed to flush the refcount block cache: No space left on device +qemu-io: Failed to write the refcount block cache: No space left on device write failed: No space left on device No errors were found on the image. diff --git a/tests/qemu-iotests/071.out b/tests/qemu-iotests/071.out index bca0c02f5c..de1c59154d 100644 --- a/tests/qemu-iotests/071.out +++ b/tests/qemu-iotests/071.out @@ -86,7 +86,6 @@ read failed: Input/output error {"return": ""} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} -QEMU_PROG: Failed to flush the L2 table cache: Input/output error -QEMU_PROG: Failed to flush the refcount block cache: Input/output error +QEMU_PROG: Failed to flush after writing caches: Input/output error *** done diff --git a/tests/qemu-iotests/080.out b/tests/qemu-iotests/080.out index 45ab01db8e..860228f93b 100644 --- a/tests/qemu-iotests/080.out +++ b/tests/qemu-iotests/080.out @@ -66,7 +66,7 @@ wrote 512/512 bytes at offset 0 qemu-img: Failed to load snapshot: Snapshot L1 table offset invalid qemu-img: Snapshot L1 table offset invalid qemu-img: Failed to turn zero into data clusters: Invalid argument -qemu-io: Failed to flush the refcount block cache: Invalid argument +qemu-io: Failed to write the refcount block cache: Invalid argument write failed: Invalid argument qemu-img: Snapshot L1 table offset invalid qemu-img: Could not apply snapshot 'test': Failed to load snapshot: Invalid argument @@ -89,7 +89,7 @@ wrote 512/512 bytes at offset 0 qemu-img: Failed to load snapshot: Snapshot L1 table too large qemu-img: Snapshot L1 table too large qemu-img: Failed to turn zero into data clusters: File too large -qemu-io: Failed to flush the refcount block cache: File too large +qemu-io: Failed to write the refcount block cache: File too large write failed: File too large qemu-img: Snapshot L1 table too large qemu-img: Could not apply snapshot 'test': Failed to load snapshot: File too large -- 2.31.1