diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2019-04-30 17:06:57 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2019-04-30 17:06:57 +0100 |
commit | f75d15231e56cb0f2bafe19faf1229c459a60731 (patch) | |
tree | 1e0906331b8e6832c8300affa5174583253aa24a | |
parent | c4bfdd5947fd656fc46f6ab645b7b363aa1a83b7 (diff) | |
parent | 54277a2aab876aba7b55c7e88e2b372691849741 (diff) |
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block layer patches:
- iotests: Fix output of qemu-io related tests
- Don't ignore bdrv_set_aio_context() for nodes with bs->drv = NUL
- vmdk: Set vmdk parent backing_format to vmdk
- qcow2: Preallocation fixes (especially for external data files)
- Add linear-buffer-based APIs (as wrappers around qiov-based ones)
- Various code cleanups and small corner case fixes
# gpg: Signature made Tue 30 Apr 2019 16:35:09 BST
# gpg: using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6
* remotes/kevin/tags/for-upstream: (27 commits)
block/qed: add missed coroutine_fn markers
iotests: Check that images are in read-only mode after block-commit
commit: Make base read-only if there is an early failure
qemu-img: use buffer-based io
block/stream: use buffer-based io
block/commit: use buffer-based io
block/backup: use buffer-based io
block/parallels: use buffer-based io
block/qed: use buffer-based io
block/qcow: use buffer-based io
block/qcow2: use buffer-based io
block: introduce byte-based io helpers
qcow2: Fix error handling in the compression code
qcow2: Fix qcow2_make_empty() with external data file
qemu-img: Make create hint at protocol options
iotests: Perform the correct test in 082
qcow2: Fix full preallocation with external data file
qcow2: Add errp to preallocate_co()
qcow2: Avoid COW during metadata preallocation
qemu-img: Saner printing of large file sizes
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
75 files changed, 696 insertions, 519 deletions
@@ -5672,10 +5672,6 @@ void bdrv_detach_aio_context(BlockDriverState *bs) BdrvAioNotifier *baf, *baf_tmp; BdrvChild *child; - if (!bs->drv) { - return; - } - assert(!bs->walking_aio_notifiers); bs->walking_aio_notifiers = true; QLIST_FOREACH_SAFE(baf, &bs->aio_notifiers, list, baf_tmp) { @@ -5690,7 +5686,7 @@ void bdrv_detach_aio_context(BlockDriverState *bs) */ bs->walking_aio_notifiers = false; - if (bs->drv->bdrv_detach_aio_context) { + if (bs->drv && bs->drv->bdrv_detach_aio_context) { bs->drv->bdrv_detach_aio_context(bs); } QLIST_FOREACH(child, &bs->children, next) { @@ -5709,10 +5705,6 @@ void bdrv_attach_aio_context(BlockDriverState *bs, BdrvAioNotifier *ban, *ban_tmp; BdrvChild *child; - if (!bs->drv) { - return; - } - if (bs->quiesce_counter) { aio_disable_external(new_context); } @@ -5722,7 +5714,7 @@ void bdrv_attach_aio_context(BlockDriverState *bs, QLIST_FOREACH(child, &bs->children, next) { bdrv_attach_aio_context(child->bs, new_context); } - if (bs->drv->bdrv_attach_aio_context) { + if (bs->drv && bs->drv->bdrv_attach_aio_context) { bs->drv->bdrv_attach_aio_context(bs, new_context); } diff --git a/block/backup.c b/block/backup.c index 9988753249..910ed764aa 100644 --- a/block/backup.c +++ b/block/backup.c @@ -107,7 +107,6 @@ static int coroutine_fn backup_cow_with_bounce_buffer(BackupBlockJob *job, void **bounce_buffer) { int ret; - QEMUIOVector qiov; BlockBackend *blk = job->common.blk; int nbytes; int read_flags = is_write_notifier ? BDRV_REQ_NO_SERIALISING : 0; @@ -118,9 +117,8 @@ static int coroutine_fn backup_cow_with_bounce_buffer(BackupBlockJob *job, if (!*bounce_buffer) { *bounce_buffer = blk_blockalign(blk, job->cluster_size); } - qemu_iovec_init_buf(&qiov, *bounce_buffer, nbytes); - ret = blk_co_preadv(blk, start, qiov.size, &qiov, read_flags); + ret = blk_co_pread(blk, start, nbytes, *bounce_buffer, read_flags); if (ret < 0) { trace_backup_do_cow_read_fail(job, start, ret); if (error_is_read) { @@ -129,13 +127,13 @@ static int coroutine_fn backup_cow_with_bounce_buffer(BackupBlockJob *job, goto fail; } - if (qemu_iovec_is_zero(&qiov)) { + if (buffer_is_zero(*bounce_buffer, nbytes)) { ret = blk_co_pwrite_zeroes(job->target, start, - qiov.size, write_flags | BDRV_REQ_MAY_UNMAP); + nbytes, write_flags | BDRV_REQ_MAY_UNMAP); } else { - ret = blk_co_pwritev(job->target, start, - qiov.size, &qiov, write_flags | - (job->compress ? BDRV_REQ_WRITE_COMPRESSED : 0)); + ret = blk_co_pwrite(job->target, start, + nbytes, *bounce_buffer, write_flags | + (job->compress ? BDRV_REQ_WRITE_COMPRESSED : 0)); } if (ret < 0) { trace_backup_do_cow_write_fail(job, start, ret); diff --git a/block/commit.c b/block/commit.c index ba60fef58a..27537d995b 100644 --- a/block/commit.c +++ b/block/commit.c @@ -48,16 +48,15 @@ static int coroutine_fn commit_populate(BlockBackend *bs, BlockBackend *base, void *buf) { int ret = 0; - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); assert(bytes < SIZE_MAX); - ret = blk_co_preadv(bs, offset, qiov.size, &qiov, 0); + ret = blk_co_pread(bs, offset, bytes, buf, 0); if (ret < 0) { return ret; } - ret = blk_co_pwritev(base, offset, qiov.size, &qiov, 0); + ret = blk_co_pwrite(base, offset, bytes, buf, 0); if (ret < 0) { return ret; } @@ -384,6 +383,9 @@ fail: if (s->top) { blk_unref(s->top); } + if (s->base_read_only) { + bdrv_reopen_set_read_only(base, true, NULL); + } job_early_fail(&s->common.job); /* commit_top_bs has to be replaced after deleting the block job, * otherwise this would fail because of lack of permissions. */ diff --git a/block/parallels.c b/block/parallels.c index 15bc97b759..2747400577 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -220,20 +220,18 @@ static int64_t allocate_clusters(BlockDriverState *bs, int64_t sector_num, if (bs->backing) { int64_t nb_cow_sectors = to_allocate * s->tracks; int64_t nb_cow_bytes = nb_cow_sectors << BDRV_SECTOR_BITS; - QEMUIOVector qiov = - QEMU_IOVEC_INIT_BUF(qiov, qemu_blockalign(bs, nb_cow_bytes), - nb_cow_bytes); + void *buf = qemu_blockalign(bs, nb_cow_bytes); - ret = bdrv_co_preadv(bs->backing, idx * s->tracks * BDRV_SECTOR_SIZE, - nb_cow_bytes, &qiov, 0); + ret = bdrv_co_pread(bs->backing, idx * s->tracks * BDRV_SECTOR_SIZE, + nb_cow_bytes, buf, 0); if (ret < 0) { - qemu_vfree(qemu_iovec_buf(&qiov)); + qemu_vfree(buf); return ret; } ret = bdrv_co_pwritev(bs->file, s->data_end * BDRV_SECTOR_SIZE, - nb_cow_bytes, &qiov, 0); - qemu_vfree(qemu_iovec_buf(&qiov)); + nb_cow_bytes, buf, 0); + qemu_vfree(buf); if (ret < 0) { return ret; } diff --git a/block/qapi.c b/block/qapi.c index e3e74f898f..0c13c86f4e 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -631,42 +631,13 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes, return head; } -#define NB_SUFFIXES 4 - -static char *get_human_readable_size(char *buf, int buf_size, int64_t size) -{ - static const char suffixes[NB_SUFFIXES] = {'K', 'M', 'G', 'T'}; - int64_t base; - int i; - - if (size <= 999) { - snprintf(buf, buf_size, "%" PRId64, size); - } else { - base = 1024; - for (i = 0; i < NB_SUFFIXES; i++) { - if (size < (10 * base)) { - snprintf(buf, buf_size, "%0.1f%c", - (double)size / base, - suffixes[i]); - break; - } else if (size < (1000 * base) || i == (NB_SUFFIXES - 1)) { - snprintf(buf, buf_size, "%" PRId64 "%c", - ((size + (base >> 1)) / base), - suffixes[i]); - break; - } - base = base * 1024; - } - } - return buf; -} - void bdrv_snapshot_dump(QEMUSnapshotInfo *sn) { - char buf1[128], date_buf[128], clock_buf[128]; + char date_buf[128], clock_buf[128]; struct tm tm; time_t ti; int64_t secs; + char *sizing = NULL; if (!sn) { qemu_printf("%-10s%-20s%7s%20s%15s", @@ -683,13 +654,14 @@ void bdrv_snapshot_dump(QEMUSnapshotInfo *sn) (int)((secs / 60) % 60), (int)(secs % 60), (int)((sn->vm_clock_nsec / 1000000) % 1000)); + sizing = size_to_str(sn->vm_state_size); qemu_printf("%-10s%-20s%7s%20s%15s", sn->id_str, sn->name, - get_human_readable_size(buf1, sizeof(buf1), - sn->vm_state_size), + sizing, date_buf, clock_buf); } + g_free(sizing); } static void dump_qdict(int indentation, QDict *dict); @@ -787,14 +759,13 @@ void bdrv_image_info_specific_dump(ImageInfoSpecific *info_spec) void bdrv_image_info_dump(ImageInfo *info) { - char size_buf[128], dsize_buf[128]; + char *size_buf, *dsize_buf; if (!info->has_actual_size) { - snprintf(dsize_buf, sizeof(dsize_buf), "unavailable"); + dsize_buf = g_strdup("unavailable"); } else { - get_human_readable_size(dsize_buf, sizeof(dsize_buf), - info->actual_size); + dsize_buf = size_to_str(info->actual_size); } - get_human_readable_size(size_buf, sizeof(size_buf), info->virtual_size); + size_buf = size_to_str(info->virtual_size); qemu_printf("image: %s\n" "file format: %s\n" "virtual size: %s (%" PRId64 " bytes)\n" @@ -802,6 +773,8 @@ void bdrv_image_info_dump(ImageInfo *info) info->filename, info->format, size_buf, info->virtual_size, dsize_buf); + g_free(size_buf); + g_free(dsize_buf); if (info->has_encrypted && info->encrypted) { qemu_printf("encrypted: yes\n"); diff --git a/block/qcow.c b/block/qcow.c index 10d2cf14b3..1bb8fd05e2 100644 --- a/block/qcow.c +++ b/block/qcow.c @@ -631,7 +631,6 @@ static coroutine_fn int qcow_co_preadv(BlockDriverState *bs, uint64_t offset, int offset_in_cluster; int ret = 0, n; uint64_t cluster_offset; - QEMUIOVector hd_qiov; uint8_t *buf; void *orig_buf; @@ -663,11 +662,10 @@ static coroutine_fn int qcow_co_preadv(BlockDriverState *bs, uint64_t offset, if (!cluster_offset) { if (bs->backing) { /* read from the base image */ - qemu_iovec_init_buf(&hd_qiov, buf, n); qemu_co_mutex_unlock(&s->lock); /* qcow2 emits this on bs->file instead of bs->backing */ BLKDBG_EVENT(bs->file, BLKDBG_READ_BACKING_AIO); - ret = bdrv_co_preadv(bs->backing, offset, n, &hd_qiov, 0); + ret = bdrv_co_pread(bs->backing, offset, n, buf, 0); qemu_co_mutex_lock(&s->lock); if (ret < 0) { break; @@ -688,11 +686,10 @@ static coroutine_fn int qcow_co_preadv(BlockDriverState *bs, uint64_t offset, ret = -EIO; break; } - qemu_iovec_init_buf(&hd_qiov, buf, n); qemu_co_mutex_unlock(&s->lock); BLKDBG_EVENT(bs->file, BLKDBG_READ_AIO); - ret = bdrv_co_preadv(bs->file, cluster_offset + offset_in_cluster, - n, &hd_qiov, 0); + ret = bdrv_co_pread(bs->file, cluster_offset + offset_in_cluster, + n, buf, 0); qemu_co_mutex_lock(&s->lock); if (ret < 0) { break; @@ -731,7 +728,6 @@ static coroutine_fn int qcow_co_pwritev(BlockDriverState *bs, uint64_t offset, int offset_in_cluster; uint64_t cluster_offset; int ret = 0, n; - QEMUIOVector hd_qiov; uint8_t *buf; void *orig_buf; @@ -776,11 +772,10 @@ static coroutine_fn int qcow_co_pwritev(BlockDriverState *bs, uint64_t offset, } } - qemu_iovec_init_buf(&hd_qiov, buf, n); qemu_co_mutex_unlock(&s->lock); BLKDBG_EVENT(bs->file, BLKDBG_WRITE_AIO); - ret = bdrv_co_pwritev(bs->file, cluster_offset + offset_in_cluster, - n, &hd_qiov, 0); + ret = bdrv_co_pwrite(bs->file, cluster_offset + offset_in_cluster, + n, buf, 0); qemu_co_mutex_lock(&s->lock); if (ret < 0) { break; @@ -1056,7 +1051,6 @@ qcow_co_pwritev_compressed(BlockDriverState *bs, uint64_t offset, uint64_t bytes, QEMUIOVector *qiov) { BDRVQcowState *s = bs->opaque; - QEMUIOVector hd_qiov; z_stream strm; int ret, out_len; uint8_t *buf, *out_buf; @@ -1122,9 +1116,8 @@ qcow_co_pwritev_compressed(BlockDriverState *bs, uint64_t offset, } cluster_offset &= s->cluster_offset_mask; - qemu_iovec_init_buf(&hd_qiov, out_buf, out_len); BLKDBG_EVENT(bs->file, BLKDBG_WRITE_COMPRESSED); - ret = bdrv_co_pwritev(bs->file, cluster_offset, out_len, &hd_qiov, 0); + ret = bdrv_co_pwrite(bs->file, cluster_offset, out_len, out_buf, 0); if (ret < 0) { goto fail; } diff --git a/block/qcow2.c b/block/qcow2.c index 3ace3b2209..a520d116ef 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -2721,11 +2721,13 @@ static int qcow2_set_up_encryption(BlockDriverState *bs, * Returns: 0 on success, -errno on failure. */ static int coroutine_fn preallocate_co(BlockDriverState *bs, uint64_t offset, - uint64_t new_length) + uint64_t new_length, PreallocMode mode, + Error **errp) { BDRVQcow2State *s = bs->opaque; uint64_t bytes; uint64_t host_offset = 0; + int64_t file_length; unsigned int cur_bytes; int ret; QCowL2Meta *meta; @@ -2734,10 +2736,11 @@ static int coroutine_fn preallocate_co(BlockDriverState *bs, uint64_t offset, bytes = new_length - offset; while (bytes) { - cur_bytes = MIN(bytes, INT_MAX); + cur_bytes = MIN(bytes, QEMU_ALIGN_DOWN(INT_MAX, s->cluster_size)); ret = qcow2_alloc_cluster_offset(bs, offset, &cur_bytes, &host_offset, &meta); if (ret < 0) { + error_setg_errno(errp, -ret, "Allocating clusters failed"); return ret; } @@ -2746,6 +2749,7 @@ static int coroutine_fn preallocate_co(BlockDriverState *bs, uint64_t offset, ret = qcow2_alloc_cluster_link_l2(bs, meta); if (ret < 0) { + error_setg_errno(errp, -ret, "Mapping clusters failed"); qcow2_free_any_clusters(bs, meta->alloc_offset, meta->nb_clusters, QCOW2_DISCARD_NEVER); return ret; @@ -2770,10 +2774,18 @@ static int coroutine_fn preallocate_co(BlockDriverState *bs, uint64_t offset, * all of the allocated clusters (otherwise we get failing reads after * EOF). Extend the image to the last allocated sector. */ - if (host_offset != 0) { - uint8_t data = 0; - ret = bdrv_pwrite(s->data_file, (host_offset + cur_bytes) - 1, - &data, 1); + file_length = bdrv_getlength(s->data_file->bs); + if (file_length < 0) { + error_setg_errno(errp, -file_length, "Could not get file size"); + return file_length; + } + + if (host_offset + cur_bytes > file_length) { + if (mode == PREALLOC_MODE_METADATA) { + mode = PREALLOC_MODE_OFF; + } + ret = bdrv_co_truncate(s->data_file, host_offset + cur_bytes, mode, + errp); if (ret < 0) { return ret; } @@ -3745,12 +3757,17 @@ static int coroutine_fn qcow2_co_truncate(BlockDriverState *bs, int64_t offset, switch (prealloc) { case PREALLOC_MODE_OFF: + if (has_data_file(bs)) { + ret = bdrv_co_truncate(s->data_file, offset, prealloc, errp); + if (ret < 0) { + goto fail; + } + } break; case PREALLOC_MODE_METADATA: - ret = preallocate_co(bs, old_length, offset); + ret = preallocate_co(bs, old_length, offset, prealloc, errp); if (ret < 0) { - error_setg_errno(errp, -ret, "Preallocation failed"); goto fail; } break; @@ -3766,9 +3783,8 @@ static int coroutine_fn qcow2_co_truncate(BlockDriverState *bs, int64_t offset, /* With a data file, preallocation means just allocating the metadata * and forwarding the truncate request to the data file */ if (has_data_file(bs)) { - ret = preallocate_co(bs, old_length, offset); + ret = preallocate_co(bs, old_length, offset, prealloc, errp); if (ret < 0) { - error_setg_errno(errp, -ret, "Preallocation failed"); goto fail; } break; @@ -3882,16 +3898,6 @@ static int coroutine_fn qcow2_co_truncate(BlockDriverState *bs, int64_t offset, bs->total_sectors = offset / BDRV_SECTOR_SIZE; - if (has_data_file(bs)) { - if (prealloc == PREALLOC_MODE_METADATA) { - prealloc = PREALLOC_MODE_OFF; - } - ret = bdrv_co_truncate(s->data_file, offset, prealloc, errp); - if (ret < 0) { - goto fail; - } - } - /* write updated header.size */ offset = cpu_to_be64(offset); ret = bdrv_pwrite_sync(bs->file, offsetof(QCowHeader, size), @@ -3923,8 +3929,8 @@ fail: * @src - source buffer, @src_size bytes * * Returns: compressed size on success - * -1 destination buffer is not enough to store compressed data - * -2 on any other error + * -ENOMEM destination buffer is not enough to store compressed data + * -EIO on any other error */ static ssize_t qcow2_compress(void *dest, size_t dest_size, const void *src, size_t src_size) @@ -3937,7 +3943,7 @@ static ssize_t qcow2_compress(void *dest, size_t dest_size, ret = deflateInit2(&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED, -12, 9, Z_DEFAULT_STRATEGY); if (ret != Z_OK) { - return -2; + return -EIO; } /* strm.next_in is not const in old zlib versions, such as those used on @@ -3951,7 +3957,7 @@ static ssize_t qcow2_compress(void *dest, size_t dest_size, if (ret == Z_STREAM_END) { ret = dest_size - strm.avail_out; } else { - ret = (ret == Z_OK ? -1 : -2); + ret = (ret == Z_OK ? -ENOMEM : -EIO); } deflateEnd(&strm); @@ -4088,9 +4094,8 @@ qcow2_co_pwritev_compressed(BlockDriverState *bs, uint64_t offset, uint64_t bytes, QEMUIOVector *qiov) { BDRVQcow2State *s = bs->opaque; - QEMUIOVector hd_qiov; int ret; - size_t out_len; + ssize_t out_len; uint8_t *buf, *out_buf; uint64_t cluster_offset; @@ -4129,16 +4134,16 @@ qcow2_co_pwritev_compressed(BlockDriverState *bs, uint64_t offset, out_len = qcow2_co_compress(bs, out_buf, s->cluster_size - 1, buf, s->cluster_size); - if (out_len == -2) { - ret = -EINVAL; - goto fail; - } else if (out_len == -1) { + if (out_len == -ENOMEM) { /* could not compress: write normal cluster */ ret = qcow2_co_pwritev(bs, offset, bytes, qiov, 0); if (ret < 0) { goto fail; } goto success; + } else if (out_len < 0) { + ret = -EINVAL; + goto fail; } qemu_co_mutex_lock(&s->lock); @@ -4155,10 +4160,8 @@ qcow2_co_pwritev_compressed(BlockDriverState *bs, uint64_t offset, goto fail; } - qemu_iovec_init_buf(&hd_qiov, out_buf, out_len); - BLKDBG_EVENT(s->data_file, BLKDBG_WRITE_COMPRESSED); - ret = bdrv_co_pwritev(s->data_file, cluster_offset, out_len, &hd_qiov, 0); + ret = bdrv_co_pwrite(s->data_file, cluster_offset, out_len, out_buf, 0); if (ret < 0) { goto fail; } @@ -4181,7 +4184,6 @@ qcow2_co_preadv_compressed(BlockDriverState *bs, int ret = 0, csize, nb_csectors; uint64_t coffset; uint8_t *buf, *out_buf; - QEMUIOVector local_qiov; int offset_in_cluster = offset_into_cluster(s, offset); coffset = file_cluster_offset & s->cluster_offset_mask; @@ -4192,12 +4194,11 @@ qcow2_co_preadv_compressed(BlockDriverState *bs, if (!buf) { return -ENOMEM; } - qemu_iovec_init_buf(&local_qiov, buf, csize); out_buf = qemu_blockalign(bs, s->cluster_size); BLKDBG_EVENT(bs->file, BLKDBG_READ_COMPRESSED); - ret = bdrv_co_preadv(bs->file, coffset, csize, &local_qiov, 0); + ret = bdrv_co_pread(bs->file, coffset, csize, buf, 0); if (ret < 0) { goto fail; } @@ -4378,14 +4379,17 @@ static int qcow2_make_empty(BlockDriverState *bs) if (s->qcow_version >= 3 && !s->snapshots && !s->nb_bitmaps && 3 + l1_clusters <= s->refcount_block_size && - s->crypt_method_header != QCOW_CRYPT_LUKS) { + s->crypt_method_header != QCOW_CRYPT_LUKS && + !has_data_file(bs)) { /* The following function only works for qcow2 v3 images (it * requires the dirty flag) and only as long as there are no * features that reserve extra clusters (such as snapshots, * LUKS header, or persistent bitmaps), because it completely * empties the image. Furthermore, the L1 table and three * additional clusters (image header, refcount table, one - * refcount block) have to fit inside one refcount block. */ + * refcount block) have to fit inside one refcount block. It + * only resets the image file, i.e. does not work with an + * external data file. */ return make_completely_empty(bs); } diff --git a/block/qed-check.c b/block/qed-check.c index 0edac03159..418033ee24 100644 --- a/block/qed-check.c +++ b/block/qed-check.c @@ -106,7 +106,7 @@ static unsigned int qed_check_l2_table(QEDCheck *check, QEDTable *table) /** * Descend tables and check each cluster is referenced once only */ -static int qed_check_l1_table(QEDCheck *check, QEDTable *table) +static int coroutine_fn qed_check_l1_table(QEDCheck *check, QEDTable *table) { BDRVQEDState *s = check->s; unsigned int i, num_invalid_l1 = 0; @@ -218,7 +218,7 @@ static void qed_check_mark_clean(BDRVQEDState *s, BdrvCheckResult *result) } /* Called with table_lock held. */ -int qed_check(BDRVQEDState *s, BdrvCheckResult *result, bool fix) +int coroutine_fn qed_check(BDRVQEDState *s, BdrvCheckResult *result, bool fix) { QEDCheck check = { .s = s, diff --git a/block/qed-table.c b/block/qed-table.c index c497bd4aec..405d446cbe 100644 --- a/block/qed-table.c +++ b/block/qed-table.c @@ -19,24 +19,25 @@ #include "qemu/bswap.h" /* Called with table_lock held. */ -static int qed_read_table(BDRVQEDState *s, uint64_t offset, QEDTable *table) +static int coroutine_fn qed_read_table(BDRVQEDState *s, uint64_t offset, + QEDTable *table) { - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF( - qiov, table->offsets, s->header.cluster_size * s->header.table_size); + unsigned int bytes = s->header.cluster_size * s->header.table_size; + int noffsets; int i, ret; trace_qed_read_table(s, offset, table); qemu_co_mutex_unlock(&s->table_lock); - ret = bdrv_preadv(s->bs->file, offset, &qiov); + ret = bdrv_co_pread(s->bs->file, offset, bytes, table->offsets, 0); qemu_co_mutex_lock(&s->table_lock); if (ret < 0) { goto out; } /* Byteswap offsets */ - noffsets = qiov.size / sizeof(uint64_t); + noffsets = bytes / sizeof(uint64_t); for (i = 0; i < noffsets; i++) { table->offsets[i] = le64_to_cpu(table->offsets[i]); } @@ -60,13 +61,13 @@ out: * * Called with table_lock held. */ -static int qed_write_table(BDRVQEDState *s, uint64_t offset, QEDTable *table, - unsigned int index, unsigned int n, bool flush) +static int coroutine_fn qed_write_table(BDRVQEDState *s, uint64_t offset, + QEDTable *table, unsigned int index, + unsigned int n, bool flush) { unsigned int sector_mask = BDRV_SECTOR_SIZE / sizeof(uint64_t) - 1; unsigned int start, end, i; QEDTable *new_table; - QEMUIOVector qiov; size_t len_bytes; int ret; @@ -79,7 +80,6 @@ static int qed_write_table(BDRVQEDState *s, uint64_t offset, QEDTable *table, len_bytes = (end - start) * sizeof(uint64_t); new_table = qemu_blockalign(s->bs, len_bytes); - qemu_iovec_init_buf(&qiov, new_table->offsets, len_bytes); /* Byteswap table */ for (i = start; i < end; i++) { @@ -91,7 +91,7 @@ static int qed_write_table(BDRVQEDState *s, uint64_t offset, QEDTable *table, offset += start * sizeof(uint64_t); qemu_co_mutex_unlock(&s->table_lock); - ret = bdrv_pwritev(s->bs->file, offset, &qiov); + ret = bdrv_co_pwrite(s->bs->file, offset, len_bytes, new_table->offsets, 0); qemu_co_mutex_lock(&s->table_lock); trace_qed_write_table_cb(s, table, flush, ret); if (ret < 0) { @@ -111,27 +111,29 @@ out: return ret; } -int qed_read_l1_table_sync(BDRVQEDState *s) +int coroutine_fn qed_read_l1_table_sync(BDRVQEDState *s) { return qed_read_table(s, s->header.l1_table_offset, s->l1_table); } /* Called with table_lock held. */ -int qed_write_l1_table(BDRVQEDState *s, unsigned int index, unsigned int n) +int coroutine_fn qed_write_l1_table(BDRVQEDState *s, unsigned int index, + unsigned int n) { BLKDBG_EVENT(s->bs->file, BLKDBG_L1_UPDATE); return qed_write_table(s, s->header.l1_table_offset, s->l1_table, index, n, false); } -int qed_write_l1_table_sync(BDRVQEDState *s, unsigned int index, - unsigned int n) +int coroutine_fn qed_write_l1_table_sync(BDRVQEDState *s, unsigned int index, + unsigned int n) { return qed_write_l1_table(s, index, n); } /* Called with table_lock held. */ -int qed_read_l2_table(BDRVQEDState *s, QEDRequest *request, uint64_t offset) +int coroutine_fn qed_read_l2_table(BDRVQEDState *s, QEDRequest *request, + uint64_t offset) { int ret; @@ -168,22 +170,25 @@ int qed_read_l2_table(BDRVQEDState *s, QEDRequest *request, uint64_t offset) return ret; } -int qed_read_l2_table_sync(BDRVQEDState *s, QEDRequest *request, uint64_t offset) +int coroutine_fn qed_read_l2_table_sync(BDRVQEDState *s, QEDRequest *request, + uint64_t offset) { return qed_read_l2_table(s, request, offset); } /* Called with table_lock held. */ -int qed_write_l2_table(BDRVQEDState *s, QEDRequest *request, - unsigned int index, unsigned int n, bool flush) +int coroutine_fn qed_write_l2_table(BDRVQEDState *s, QEDRequest *request, + unsigned int index, unsigned int n, + bool flush) { BLKDBG_EVENT(s->bs->file, BLKDBG_L2_UPDATE); return qed_write_table(s, request->l2_table->offset, request->l2_table->table, index, n, flush); } -int qed_write_l2_table_sync(BDRVQEDState *s, QEDRequest *request, - unsigned int index, unsigned int n, bool flush) +int coroutine_fn qed_write_l2_table_sync(BDRVQEDState *s, QEDRequest *request, + unsigned int index, unsigned int n, + bool flush) { return qed_write_l2_table(s, request, index, n, flush); } diff --git a/block/qed.c b/block/qed.c index 89af05d524..dcdcd62b4a 100644 --- a/block/qed.c +++ b/block/qed.c @@ -113,15 +113,13 @@ static int coroutine_fn qed_write_header(BDRVQEDState *s) int nsectors = DIV_ROUND_UP(sizeof(QEDHeader), BDRV_SECTOR_SIZE); size_t len = nsectors * BDRV_SECTOR_SIZE; uint8_t *buf; - QEMUIOVector qiov; int ret; assert(s->allocating_acb || s->allocating_write_reqs_plugged); buf = qemu_blockalign(s->bs, len); - qemu_iovec_init_buf(&qiov, buf, len); - ret = bdrv_co_preadv(s->bs->file, 0, qiov.size, &qiov, 0); + ret = bdrv_co_pread(s->bs->file, 0, len, buf, 0); if (ret < 0) { goto out; } @@ -129,7 +127,7 @@ static int coroutine_fn qed_write_header(BDRVQEDState *s) /* Update header */ qed_header_cpu_to_le(&s->header, (QEDHeader *) buf); - ret = bdrv_co_pwritev(s->bs->file, 0, qiov.size, &qiov, 0); + ret = bdrv_co_pwrite(s->bs->file, 0, len, buf, 0); if (ret < 0) { goto out; } @@ -1606,8 +1604,9 @@ static void coroutine_fn bdrv_qed_co_invalidate_cache(BlockDriverState *bs, } } -static int bdrv_qed_co_check(BlockDriverState *bs, BdrvCheckResult *result, - BdrvCheckMode fix) +static int coroutine_fn bdrv_qed_co_check(BlockDriverState *bs, + BdrvCheckResult *result, + BdrvCheckMode fix) { BDRVQEDState *s = bs->opaque; int ret; diff --git a/block/qed.h b/block/qed.h index f35341f134..42c115d822 100644 --- a/block/qed.h +++ b/block/qed.h @@ -201,17 +201,21 @@ void qed_commit_l2_cache_entry(L2TableCache *l2_cache, CachedL2Table *l2_table); /** * Table I/O functions */ -int qed_read_l1_table_sync(BDRVQEDState *s); -int qed_write_l1_table(BDRVQEDState *s, unsigned int index, unsigned int n); -int qed_write_l1_table_sync(BDRVQEDState *s, unsigned int index, - unsigned int n); -int qed_read_l2_table_sync(BDRVQEDState *s, QEDRequest *request, - uint64_t offset); -int qed_read_l2_table(BDRVQEDState *s, QEDRequest *request, uint64_t offset); -int qed_write_l2_table(BDRVQEDState *s, QEDRequest *request, - unsigned int index, unsigned int n, bool flush); -int qed_write_l2_table_sync(BDRVQEDState *s, QEDRequest *request, - unsigned int index, unsigned int n, bool flush); +int coroutine_fn qed_read_l1_table_sync(BDRVQEDState *s); +int coroutine_fn qed_write_l1_table(BDRVQEDState *s, unsigned int index, + unsigned int n); +int coroutine_fn qed_write_l1_table_sync(BDRVQEDState *s, unsigned int index, + unsigned int n); +int coroutine_fn qed_read_l2_table_sync(BDRVQEDState *s, QEDRequest *request, + uint64_t offset); +int coroutine_fn qed_read_l2_table(BDRVQEDState *s, QEDRequest *request, + uint64_t offset); +int coroutine_fn qed_write_l2_table(BDRVQEDState *s, QEDRequest *request, + unsigned int index, unsigned int n, + bool flush); +int coroutine_fn qed_write_l2_table_sync(BDRVQEDState *s, QEDRequest *request, + unsigned int index, unsigned int n, + bool flush); /** * Cluster functions @@ -223,7 +227,7 @@ int coroutine_fn qed_find_cluster(BDRVQEDState *s, QEDRequest *request, /** * Consistency check */ -int qed_check(BDRVQEDState *s, BdrvCheckResult *result, bool fix); +int coroutine_fn qed_check(BDRVQEDState *s, BdrvCheckResult *result, bool fix); QEDTable *qed_alloc_table(BDRVQEDState *s); diff --git a/block/stream.c b/block/stream.c index bfaebb861a..1a906fd860 100644 --- a/block/stream.c +++ b/block/stream.c @@ -42,12 +42,10 @@ static int coroutine_fn stream_populate(BlockBackend *blk, int64_t offset, uint64_t bytes, void *buf) { - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); - assert(bytes < SIZE_MAX); /* Copy-on-read the unallocated clusters */ - return blk_co_preadv(blk, offset, qiov.size, &qiov, BDRV_REQ_COPY_ON_READ); + return blk_co_pread(blk, offset, bytes, buf, BDRV_REQ_COPY_ON_READ); } static void stream_abort(Job *job) diff --git a/block/vhdx-log.c b/block/vhdx-log.c index 3149ff08d8..5e946846f1 100644 --- a/block/vhdx-log.c +++ b/block/vhdx-log.c @@ -551,7 +551,7 @@ static int vhdx_log_flush(BlockDriverState *bs, BDRVVHDXState *s, } if (file_length < desc_entries->hdr.last_file_offset) { new_file_size = desc_entries->hdr.last_file_offset; - if (new_file_size % (1024*1024)) { + if (new_file_size % (1 * MiB)) { /* round up to nearest 1MB boundary */ new_file_size = QEMU_ALIGN_UP(new_file_size, MiB); if (new_file_size > INT64_MAX) { diff --git a/block/vhdx.c b/block/vhdx.c index b785aef4b7..a143a57657 100644 --- a/block/vhdx.c +++ b/block/vhdx.c @@ -1175,7 +1175,7 @@ static int vhdx_allocate_block(BlockDriverState *bs, BDRVVHDXState *s, *new_offset = current_len; /* per the spec, the address for a block is in units of 1MB */ - *new_offset = ROUND_UP(*new_offset, 1024 * 1024); + *new_offset = ROUND_UP(*new_offset, 1 * MiB); if (*new_offset > INT64_MAX) { return -EINVAL; } @@ -1338,7 +1338,7 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num, case PAYLOAD_BLOCK_FULLY_PRESENT: /* if the file offset address is in the header zone, * there is a problem */ - if (sinfo.file_offset < (1024 * 1024)) { + if (sinfo.file_offset < (1 * MiB)) { ret = -EFAULT; goto error_bat_restore; } @@ -1889,7 +1889,8 @@ static int coroutine_fn vhdx_co_create(BlockdevCreateOptions *opts, return -EINVAL; } if (block_size > VHDX_BLOCK_SIZE_MAX) { - error_setg(errp, "Block size must not exceed %d", VHDX_BLOCK_SIZE_MAX); + error_setg(errp, "Block size must not exceed %" PRId64, + VHDX_BLOCK_SIZE_MAX); return -EINVAL; } diff --git a/block/vhdx.h b/block/vhdx.h index 1bfb4e4f73..0b74924cee 100644 --- a/block/vhdx.h +++ b/block/vhdx.h @@ -17,13 +17,11 @@ #ifndef BLOCK_VHDX_H #define BLOCK_VHDX_H - -#define KiB (1 * 1024) -#define MiB (KiB * 1024) -#define GiB (MiB * 1024) -#define TiB ((uint64_t) GiB * 1024) +#include "qemu/units.h" #define DEFAULT_LOG_SIZE 1048576 /* 1MiB */ +/* Note: can't use 1 * MiB, because it's passed to stringify() */ + /* Structures and fields present in the VHDX file */ /* The header section has the following blocks, @@ -36,7 +34,7 @@ * 0.........64KB...........128KB........192KB..........256KB................1MB */ -#define VHDX_HEADER_BLOCK_SIZE (64 * 1024) +#define VHDX_HEADER_BLOCK_SIZE (64 * KiB) #define VHDX_FILE_ID_OFFSET 0 #define VHDX_HEADER1_OFFSET (VHDX_HEADER_BLOCK_SIZE * 1) @@ -85,7 +83,7 @@ typedef struct QEMU_PACKED MSGUID { #define guid_eq(a, b) \ (memcmp(&(a), &(b), sizeof(MSGUID)) == 0) -#define VHDX_HEADER_SIZE (4 * 1024) /* although the vhdx_header struct in disk +#define VHDX_HEADER_SIZE (4 * KiB) /* although the vhdx_header struct in disk is only 582 bytes, for purposes of crc the header is the first 4KB of the 64KB block */ @@ -161,8 +159,8 @@ typedef struct QEMU_PACKED VHDXRegionTableEntry { /* ---- LOG ENTRY STRUCTURES ---- */ -#define VHDX_LOG_MIN_SIZE (1024 * 1024) -#define VHDX_LOG_SECTOR_SIZE 4096 +#define VHDX_LOG_MIN_SIZE (1 * MiB) +#define VHDX_LOG_SECTOR_SIZE (4 * KiB) #define VHDX_LOG_HDR_SIZE 64 #define VHDX_LOG_SIGNATURE 0x65676f6c typedef struct QEMU_PACKED VHDXLogEntryHeader { diff --git a/block/vmdk.c b/block/vmdk.c index 8dec6ef767..de8cb859f8 100644 --- a/block/vmdk.c +++ b/block/vmdk.c @@ -397,6 +397,8 @@ static int vmdk_parent_open(BlockDriverState *bs) pstrcpy(bs->auto_backing_file, end_name - p_name + 1, p_name); pstrcpy(bs->backing_file, sizeof(bs->backing_file), bs->auto_backing_file); + pstrcpy(bs->backing_format, sizeof(bs->backing_format), + "vmdk"); } out: diff --git a/block/vpc.c b/block/vpc.c index a902a4c54d..0c279b87c8 100644 --- a/block/vpc.c +++ b/block/vpc.c @@ -639,8 +639,10 @@ vpc_co_preadv(BlockDriverState *bs, uint64_t offset, uint64_t bytes, qemu_iovec_reset(&local_qiov); qemu_iovec_concat(&local_qiov, qiov, bytes_done, n_bytes); + qemu_co_mutex_unlock(&s->lock); ret = bdrv_co_preadv(bs->file, image_offset, n_bytes, &local_qiov, 0); + qemu_co_mutex_lock(&s->lock); if (ret < 0) { goto fail; } @@ -697,8 +699,10 @@ vpc_co_pwritev(BlockDriverState *bs, uint64_t offset, uint64_t bytes, qemu_iovec_reset(&local_qiov); qemu_iovec_concat(&local_qiov, qiov, bytes_done, n_bytes); + qemu_co_mutex_unlock(&s->lock); ret = bdrv_co_pwritev(bs->file, image_offset, n_bytes, &local_qiov, 0); + qemu_co_mutex_lock(&s->lock); if (ret < 0) { goto fail; } diff --git a/include/block/block_int.h b/include/block/block_int.h index 01e855a066..94d45c9708 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -925,6 +925,22 @@ int coroutine_fn bdrv_co_pwritev(BdrvChild *child, int64_t offset, unsigned int bytes, QEMUIOVector *qiov, BdrvRequestFlags flags); +static inline int coroutine_fn bdrv_co_pread(BdrvChild *child, + int64_t offset, unsigned int bytes, void *buf, BdrvRequestFlags flags) +{ + QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); + + return bdrv_co_preadv(child, offset, bytes, &qiov, flags); +} + +static inline int coroutine_fn bdrv_co_pwrite(BdrvChild *child, + int64_t offset, unsigned int bytes, void *buf, BdrvRequestFlags flags) +{ + QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); + + return bdrv_co_pwritev(child, offset, bytes, &qiov, flags); +} + extern unsigned int bdrv_drain_all_count; void bdrv_apply_subtree_drain(BdrvChild *child, BlockDriverState *new_parent); void bdrv_unapply_subtree_drain(BdrvChild *child, BlockDriverState *old_parent); diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 3be05c2d68..5be6224226 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -124,6 +124,25 @@ int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset, int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset, unsigned int bytes, QEMUIOVector *qiov, BdrvRequestFlags flags); + +static inline int coroutine_fn blk_co_pread(BlockBackend *blk, int64_t offset, + unsigned int bytes, void *buf, + BdrvRequestFlags flags) +{ + QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); + + return blk_co_preadv(blk, offset, bytes, &qiov, flags); +} + +static inline int coroutine_fn blk_co_pwrite(BlockBackend *blk, int64_t offset, + unsigned int bytes, void *buf, + BdrvRequestFlags flags) +{ + QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); + + return blk_co_pwritev(blk, offset, bytes, &qiov, flags); +} + int blk_pwrite_zeroes(BlockBackend *blk, int64_t offset, int bytes, BdrvRequestFlags flags); BlockAIOCB *blk_aio_pwrite_zeroes(BlockBackend *blk, int64_t offset, diff --git a/qemu-img.c b/qemu-img.c index d7fe546b85..e6ad5978e0 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -267,9 +267,20 @@ static int print_block_option_help(const char *filename, const char *fmt) create_opts = qemu_opts_append(create_opts, proto_drv->create_opts); } - printf("Supported options:\n"); + if (filename) { + printf("Supported options:\n"); + } else { + printf("Supported %s options:\n", fmt); + } qemu_opts_print_help(create_opts, false); qemu_opts_free(create_opts); + + if (!filename) { + printf("\n" + "The protocol level may support further options.\n" + "Specify the target filename to include those options.\n"); + } + return 0; } @@ -1669,7 +1680,6 @@ static int coroutine_fn convert_co_read(ImgConvertState *s, int64_t sector_num, int nb_sectors, uint8_t *buf) { int n, ret; - QEMUIOVector qiov; assert(nb_sectors <= s->buf_sectors); while (nb_sectors > 0) { @@ -1685,11 +1695,10 @@ static int coroutine_fn convert_co_read(ImgConvertState *s, int64_t sector_num, bs_sectors = s->src_sectors[src_cur]; n = MIN(nb_sectors, bs_sectors - (sector_num - src_cur_offset)); - qemu_iovec_init_buf(&qiov, buf, n << BDRV_SECTOR_BITS); - ret = blk_co_preadv( + ret = blk_co_pread( blk, (sector_num - src_cur_offset) << BDRV_SECTOR_BITS, - n << BDRV_SECTOR_BITS, &qiov, 0); + n << BDRV_SECTOR_BITS, buf, 0); if (ret < 0) { return ret; } @@ -1708,7 +1717,6 @@ static int coroutine_fn convert_co_write(ImgConvertState *s, int64_t sector_num, enum ImgConvertBlockStatus status) { int ret; - QEMUIOVector qiov; while (nb_sectors > 0) { int n = nb_sectors; @@ -1736,10 +1744,8 @@ static int coroutine_fn convert_co_write(ImgConvertState *s, int64_t sector_num, (s->compressed && !buffer_is_zero(buf, n * BDRV_SECTOR_SIZE))) { - qemu_iovec_init_buf(&qiov, buf, n << BDRV_SECTOR_BITS); - - ret = blk_co_pwritev(s->target, sector_num << BDRV_SECTOR_BITS, - n << BDRV_SECTOR_BITS, &qiov, flags); + ret = blk_co_pwrite(s->target, sector_num << BDRV_SECTOR_BITS, + n << BDRV_SECTOR_BITS, buf, flags); if (ret < 0) { return ret; } diff --git a/tests/qemu-iotests/026.out b/tests/qemu-iotests/026.out index dd10a82b51..fb89b8480c 100644 --- a/tests/qemu-iotests/026.out +++ b/tests/qemu-iotests/026.out @@ -14,8 +14,8 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush the refcount block cache: Input/output error write failed: Input/output error 1 leaked clusters were found on the image. @@ -23,8 +23,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_update; errno: 5; imm: off; once: off; write -b -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush the refcount block cache: Input/output error write failed: Input/output error 1 leaked clusters were found on the image. @@ -42,8 +42,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 1 leaked clusters were found on the image. @@ -51,8 +51,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l1_update; errno: 28; imm: off; once: off; write -b -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 1 leaked clusters were found on the image. @@ -134,8 +134,8 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush the refcount block cache: Input/output error write failed: Input/output error 127 leaked clusters were found on the image. @@ -143,8 +143,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_update; errno: 5; imm: off; once: off; write -b -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush the refcount block cache: Input/output error write failed: Input/output error 127 leaked clusters were found on the image. @@ -162,8 +162,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 127 leaked clusters were found on the image. @@ -171,8 +171,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: l2_update; errno: 28; imm: off; once: off; write -b -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 127 leaked clusters were found on the image. @@ -190,15 +190,15 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush the refcount block cache: Input/output error write failed: Input/output error 1 leaked clusters were found on the image. @@ -216,15 +216,15 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 1 leaked clusters were found on the image. @@ -242,15 +242,15 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 @@ -266,15 +266,15 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -290,15 +290,15 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 @@ -314,15 +314,15 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -338,15 +338,15 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 @@ -362,15 +362,15 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -386,15 +386,15 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 @@ -410,15 +410,15 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -477,8 +477,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 55 leaked clusters were found on the image. @@ -486,8 +486,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_hookup; errno: 28; imm: off; once: off; write -b -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 251 leaked clusters were found on the image. @@ -505,15 +505,15 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -529,8 +529,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 10 leaked clusters were found on the image. @@ -538,8 +538,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write_blocks; errno: 28; imm: off; once: off; write -b -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 23 leaked clusters were found on the image. @@ -557,8 +557,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 10 leaked clusters were found on the image. @@ -566,8 +566,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_write_table; errno: 28; imm: off; once: off; write -b -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 23 leaked clusters were found on the image. @@ -585,8 +585,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 10 leaked clusters were found on the image. @@ -594,8 +594,8 @@ This means waste of disk space, but no harm to data. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 Event: refblock_alloc_switch_table; errno: 28; imm: off; once: off; write -b -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 23 leaked clusters were found on the image. @@ -631,8 +631,8 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush 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 @@ -643,8 +643,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device No errors were found on the image. Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 @@ -655,8 +655,8 @@ 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 -Failed to flush the L2 table cache: Input/output error -Failed to flush the refcount block cache: Input/output error +qemu-io: Failed to flush the L2 table cache: Input/output error +qemu-io: Failed to flush the refcount block cache: Input/output error write failed: Input/output error 96 leaked clusters were found on the image. @@ -669,8 +669,8 @@ 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 -Failed to flush the L2 table cache: No space left on device -Failed to flush the refcount block cache: No space left on device +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 write failed: No space left on device 96 leaked clusters were found on the image. diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out index b37d2a3807..0280f999ce 100644 --- a/tests/qemu-iotests/043.out +++ b/tests/qemu-iotests/043.out @@ -22,19 +22,19 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/ == finite chain of length 3 (human) == image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.2.base image: TEST_DIR/t.IMGFMT.2.base file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.1.base image: TEST_DIR/t.IMGFMT.1.base file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 == finite chain of length 3 (json) == diff --git a/tests/qemu-iotests/053.out b/tests/qemu-iotests/053.out index 8e793b6462..8a65881232 100644 --- a/tests/qemu-iotests/053.out +++ b/tests/qemu-iotests/053.out @@ -9,7 +9,7 @@ wrote 512/512 bytes at offset 0 No errors were found on the image. == Checking compressed image virtual disk size == -virtual size: 512 (512 bytes) +virtual size: 512 B (512 bytes) == Verifying the compressed image == read 512/512 bytes at offset 0 diff --git a/tests/qemu-iotests/059.out b/tests/qemu-iotests/059.out index f6dce7947c..700ad1f290 100644 --- a/tests/qemu-iotests/059.out +++ b/tests/qemu-iotests/059.out @@ -16,7 +16,7 @@ can't open device TEST_DIR/t.vmdk: L1 size too big Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2147483648 subformat=monolithicFlat image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 2.0G (2147483648 bytes) +virtual size: 2 GiB (2147483648 bytes) === Testing monolithicFlat with zeroed_grain === qemu-img: TEST_DIR/t.IMGFMT: Flat image can't enable zeroed grain @@ -26,8 +26,8 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2147483648 subformat=monolithicF Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824000 subformat=twoGbMaxExtentFlat image: TEST_DIR/t.vmdk file format: vmdk -virtual size: 1.0T (1073741824000 bytes) -disk size: 16K +virtual size: 0.977 TiB (1073741824000 bytes) +disk size: 16 KiB Format specific information: cid: XXXXXXXX parent cid: XXXXXXXX @@ -2055,7 +2055,7 @@ can't open: Cannot use relative extent paths with VMDK descriptor file 'json:{"i === Testing version 3 === image: TEST_DIR/iotest-version3.IMGFMT file format: IMGFMT -virtual size: 16G (17179869184 bytes) +virtual size: 16 GiB (17179869184 bytes) cluster_size: 65536 read 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) @@ -2262,7 +2262,7 @@ read 512/512 bytes at offset 64931328 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4398046511104 subformat=monolithicFlat image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 4.0T (4398046511104 bytes) +virtual size: 4 TiB (4398046511104 bytes) wrote 512/512 bytes at offset 966367641600 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) e100000000: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................ diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out index af623cfd86..e42bf8c5a9 100644 --- a/tests/qemu-iotests/060.out +++ b/tests/qemu-iotests/060.out @@ -13,14 +13,14 @@ write failed: Input/output error incompatible_features 0x2 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: true -can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write +qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write no file open, try 'help open' read 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) @@ -267,7 +267,7 @@ No errors were found on the image. === Testing zero refcount table size === Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.IMGFMT: Image does not contain a reference count table +qemu-io: can't open device TEST_DIR/t.IMGFMT: Image does not contain a reference count table ERROR cluster 0 refcount=0 reference=1 ERROR cluster 3 refcount=0 reference=1 Rebuilding refcount structure @@ -296,7 +296,7 @@ Can't get refcount for cluster 2: Input/output error Can't get refcount for cluster 3: Input/output error Rebuilding refcount structure Repairing cluster 1 refcount=1 reference=0 -can't open device TEST_DIR/t.IMGFMT: Could not repair dirty image: Input/output error +qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not repair dirty image: Input/output error --- Repairing --- Leaked cluster 1 refcount=1 reference=0 Repairing cluster 1 refcount=1 reference=0 @@ -364,10 +364,10 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 qcow2: Marking image as corrupt: Refblock at 0xffffff00000000 is not covered by the refcount structures; further corruption events will be suppressed qemu-img: Failed to discard unused refblocks: Input/output error --- Checking and retrying --- -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) No errors were found on the image. Image resized. -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) === Discarding a non-covered in-bounds refblock === @@ -375,10 +375,10 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 qcow2: Marking image as corrupt: Refblock at 0x1000000000 is not covered by the refcount structures; further corruption events will be suppressed qemu-img: Failed to discard unused refblocks: Input/output error --- Checking and retrying --- -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) No errors were found on the image. Image resized. -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) === Discarding a refblock covered by an unaligned refblock === diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out index 9fe1ec702f..1aa7d37ff9 100644 --- a/tests/qemu-iotests/061.out +++ b/tests/qemu-iotests/061.out @@ -495,7 +495,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 data_file=TEST_DIR/t.IM qemu-img: Cannot downgrade an image with a data file image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -515,7 +515,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 data_file=TEST_DIR/t.IM qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Could not open 'foo': No such file or directory image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -528,7 +528,7 @@ Format specific information: qemu-img: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is required for this image image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -542,7 +542,7 @@ Format specific information: Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 data_file=TEST_DIR/t.IMGFMT.data data_file_raw=on image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -554,7 +554,7 @@ Format specific information: No errors were found on the image. image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -567,7 +567,7 @@ No errors were found on the image. qemu-img: data-file-raw cannot be set on existing images image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 diff --git a/tests/qemu-iotests/069.out b/tests/qemu-iotests/069.out index f97585677b..c78e8c2b72 100644 --- a/tests/qemu-iotests/069.out +++ b/tests/qemu-iotests/069.out @@ -4,5 +4,5 @@ QA output created by 069 Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=131072 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=131072 backing_file=TEST_DIR/t.IMGFMT.base -can't open device TEST_DIR/t.IMGFMT: Could not open backing file: Could not open 'TEST_DIR/t.IMGFMT.base': No such file or directory +qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not open backing file: Could not open 'TEST_DIR/t.IMGFMT.base': No such file or directory *** done diff --git a/tests/qemu-iotests/070.out b/tests/qemu-iotests/070.out index c269d99483..2fbfd7eaf3 100644 --- a/tests/qemu-iotests/070.out +++ b/tests/qemu-iotests/070.out @@ -1,7 +1,7 @@ QA output created by 070 === Verify open image read-only fails, due to dirty log === -can't open device TEST_DIR/iotest-dirtylog-10G-4M.vhdx: VHDX image file 'TEST_DIR/iotest-dirtylog-10G-4M.vhdx' opened read-only, but contains a log that needs to be replayed +qemu-io: can't open device TEST_DIR/iotest-dirtylog-10G-4M.vhdx: VHDX image file 'TEST_DIR/iotest-dirtylog-10G-4M.vhdx' opened read-only, but contains a log that needs to be replayed To replay the log, run: qemu-img check -r all 'TEST_DIR/iotest-dirtylog-10G-4M.vhdx' === Verify open image replays log === @@ -22,6 +22,6 @@ read 18874368/18874368 bytes at offset 0 === Verify image created by Disk2VHD can be opened === image: TEST_DIR/test-disk2vhd.IMGFMT file format: IMGFMT -virtual size: 256M (268435456 bytes) +virtual size: 256 MiB (268435456 bytes) cluster_size: 2097152 *** done diff --git a/tests/qemu-iotests/075.out b/tests/qemu-iotests/075.out index b234b758e0..4f3871d337 100644 --- a/tests/qemu-iotests/075.out +++ b/tests/qemu-iotests/075.out @@ -9,23 +9,23 @@ read 512/512 bytes at offset 1048064 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) == block_size must be a multiple of 512 == -can't open device TEST_DIR/simple-pattern.cloop: block_size 513 must be a multiple of 512 +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: block_size 513 must be a multiple of 512 == block_size cannot be zero == -can't open device TEST_DIR/simple-pattern.cloop: block_size cannot be zero +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: block_size cannot be zero == huge block_size === -can't open device TEST_DIR/simple-pattern.cloop: block_size 4294966784 must be 64 MB or less +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: block_size 4294966784 must be 64 MB or less == offsets_size overflow === -can't open device TEST_DIR/simple-pattern.cloop: n_blocks 4294967295 must be 536870911 or less +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: n_blocks 4294967295 must be 536870911 or less == refuse images that require too many offsets === -can't open device TEST_DIR/simple-pattern.cloop: image requires too many offsets, try increasing block size +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: image requires too many offsets, try increasing block size == refuse images with non-monotonically increasing offsets == -can't open device TEST_DIR/simple-pattern.cloop: offsets not monotonically increasing at index 1, image file is corrupt +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: offsets not monotonically increasing at index 1, image file is corrupt == refuse images with invalid compressed block size == -can't open device TEST_DIR/simple-pattern.cloop: invalid compressed block size at index 1, image file is corrupt +qemu-io: can't open device TEST_DIR/simple-pattern.cloop: invalid compressed block size at index 1, image file is corrupt *** done diff --git a/tests/qemu-iotests/076.out b/tests/qemu-iotests/076.out index 9c66c5fb46..2de8a710a5 100644 --- a/tests/qemu-iotests/076.out +++ b/tests/qemu-iotests/076.out @@ -5,13 +5,13 @@ read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) == Negative catalog size == -can't open device TEST_DIR/parallels-v1: Catalog too large +qemu-io: can't open device TEST_DIR/parallels-v1: Catalog too large == Overflow in catalog allocation == -can't open device TEST_DIR/parallels-v1: Catalog too large +qemu-io: can't open device TEST_DIR/parallels-v1: Catalog too large == Zero sectors per track == -can't open device TEST_DIR/parallels-v1: Invalid image: Zero sectors per track +qemu-io: can't open device TEST_DIR/parallels-v1: Invalid image: Zero sectors per track == Read from a valid v2 image == read 65536/65536 bytes at offset 0 diff --git a/tests/qemu-iotests/078.out b/tests/qemu-iotests/078.out index c3d6aa4fe4..4a82e1779f 100644 --- a/tests/qemu-iotests/078.out +++ b/tests/qemu-iotests/078.out @@ -5,18 +5,18 @@ read 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) == Negative catalog size == -can't open device TEST_DIR/empty.bochs: Catalog size is too large +qemu-io: can't open device TEST_DIR/empty.bochs: Catalog size is too large == Overflow for catalog size * sizeof(uint32_t) == -can't open device TEST_DIR/empty.bochs: Catalog size is too large +qemu-io: can't open device TEST_DIR/empty.bochs: Catalog size is too large == Too small catalog bitmap for image size == -can't open device TEST_DIR/empty.bochs: Catalog size is too small for this disk size -can't open device TEST_DIR/empty.bochs: Catalog size is too small for this disk size +qemu-io: can't open device TEST_DIR/empty.bochs: Catalog size is too small for this disk size +qemu-io: can't open device TEST_DIR/empty.bochs: Catalog size is too small for this disk size == Negative extent size == -can't open device TEST_DIR/empty.bochs: Extent size 2147483648 is too large +qemu-io: can't open device TEST_DIR/empty.bochs: Extent size 2147483648 is too large == Zero extent size == -can't open device TEST_DIR/empty.bochs: Extent size must be at least 512 +qemu-io: can't open device TEST_DIR/empty.bochs: Extent size must be at least 512 *** done diff --git a/tests/qemu-iotests/080.out b/tests/qemu-iotests/080.out index 281c7e0d1d..45ab01db8e 100644 --- a/tests/qemu-iotests/080.out +++ b/tests/qemu-iotests/080.out @@ -2,34 +2,34 @@ QA output created by 080 == Huge header size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: qcow2 header exceeds cluster size -can't open device TEST_DIR/t.qcow2: qcow2 header exceeds cluster size +qemu-io: can't open device TEST_DIR/t.qcow2: qcow2 header exceeds cluster size +qemu-io: can't open device TEST_DIR/t.qcow2: qcow2 header exceeds cluster size == Huge unknown header extension == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Invalid backing file offset -can't open device TEST_DIR/t.qcow2: Header extension too large -can't open device TEST_DIR/t.qcow2: Header extension too large +qemu-io: can't open device TEST_DIR/t.qcow2: Invalid backing file offset +qemu-io: can't open device TEST_DIR/t.qcow2: Header extension too large +qemu-io: can't open device TEST_DIR/t.qcow2: Header extension too large == Huge refcount table size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Reference count table too large -can't open device TEST_DIR/t.qcow2: Reference count table too large +qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table too large +qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table too large == Misaligned refcount table == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Reference count table offset invalid +qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table offset invalid == Huge refcount offset == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Reference count table offset invalid +qemu-io: can't open device TEST_DIR/t.qcow2: Reference count table offset invalid == Invalid snapshot table == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Snapshot table too large -can't open device TEST_DIR/t.qcow2: Snapshot table too large -can't open device TEST_DIR/t.qcow2: Snapshot table offset invalid -can't open device TEST_DIR/t.qcow2: Snapshot table offset invalid +qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table too large +qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table too large +qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table offset invalid +qemu-io: can't open device TEST_DIR/t.qcow2: Snapshot table offset invalid == Hitting snapshot table size limit == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 @@ -39,10 +39,10 @@ read 512/512 bytes at offset 0 == Invalid L1 table == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Active L1 table too large -can't open device TEST_DIR/t.qcow2: Active L1 table too large -can't open device TEST_DIR/t.qcow2: Active L1 table offset invalid -can't open device TEST_DIR/t.qcow2: Active L1 table offset invalid +qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table too large +qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table too large +qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table offset invalid +qemu-io: can't open device TEST_DIR/t.qcow2: Active L1 table offset invalid == Invalid L1 table (with internal snapshot in the image) == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 @@ -50,7 +50,7 @@ qemu-img: Could not open 'TEST_DIR/t.IMGFMT': L1 table is too small == Invalid backing file size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: Backing file name too long +qemu-io: can't open device TEST_DIR/t.qcow2: Backing file name too long == Invalid L2 entry (huge physical offset) == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 @@ -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 -Failed to flush the refcount block cache: Invalid argument +qemu-io: Failed to flush 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 -Failed to flush the refcount block cache: File too large +qemu-io: Failed to flush 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 diff --git a/tests/qemu-iotests/081.out b/tests/qemu-iotests/081.out index 8ec1783ffe..04091b64e5 100644 --- a/tests/qemu-iotests/081.out +++ b/tests/qemu-iotests/081.out @@ -70,7 +70,7 @@ read 10485760/10485760 bytes at offset 0 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) == checking the blkverify mode with invalid settings == -can't open: blkverify=on can only be set if there are exactly two files and vote-threshold is 2 +qemu-io: can't open: blkverify=on can only be set if there are exactly two files and vote-threshold is 2 == dynamically adding a child to a quorum == Testing: diff --git a/tests/qemu-iotests/082 b/tests/qemu-iotests/082 index d0afa46e9a..278511dba4 100755 --- a/tests/qemu-iotests/082 +++ b/tests/qemu-iotests/082 @@ -212,7 +212,10 @@ run_qemu_img amend -f $IMGFMT -o backing_file="$TEST_IMG" -o ,, -o help "$TEST_I # Leave out everything that isn't needed run_qemu_img amend -f $IMGFMT -o help -run_qemu_img convert -o help + +# amend requires specifying either a format explicitly, or a file +# which it can probe +run_qemu_img amend -o help # Try help option for a format that does not support amendment run_qemu_img amend -f bochs -o help diff --git a/tests/qemu-iotests/082.out b/tests/qemu-iotests/082.out index 915640613f..7e25706813 100644 --- a/tests/qemu-iotests/082.out +++ b/tests/qemu-iotests/082.out @@ -6,14 +6,14 @@ Testing: create -f foo -f qcow2 TEST_DIR/t.qcow2 128M Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=134217728 cluster_size=65536 lazy_refcounts=off refcount_bits=16 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on TEST_DIR/t.qcow2 128M Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=134217728 cluster_size=4096 lazy_refcounts=on refcount_bits=16 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 4096 Format specific information: compat: 1.1 @@ -25,7 +25,7 @@ Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=134217728 cluster_size=8192 lazy_refcounts=on refcount_bits=16 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 8192 Format specific information: compat: 1.1 @@ -37,7 +37,7 @@ Testing: create -f qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 128 Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=134217728 cluster_size=8192 lazy_refcounts=off refcount_bits=16 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 8192 === create: help for -o === @@ -242,7 +242,7 @@ Testing: create -f qcow2 -o backing_file=TEST_DIR/t.qcow2 -o ,, -o help TEST_DIR qemu-img: Invalid option list: ,, Testing: create -f qcow2 -o help -Supported options: +Supported qcow2 options: backing_file=<str> - File name of a base image backing_fmt=<str> - Image format of the base image cluster_size=<size> - qcow2 cluster size @@ -263,10 +263,16 @@ Supported options: refcount_bits=<num> - Width of a reference count entry in bits size=<size> - Virtual disk size +The protocol level may support further options. +Specify the target filename to include those options. + Testing: create -o help -Supported options: +Supported raw options: size=<size> - Virtual disk size +The protocol level may support further options. +Specify the target filename to include those options. + Testing: create -f bochs -o help qemu-img: Format driver 'bochs' does not support image creation @@ -278,18 +284,18 @@ Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=134217728 cluster_size=65536 lazy_ Testing: convert -f foo -f qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base image: TEST_DIR/t.IMGFMT.base file format: raw -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) Testing: convert -O foo -O qcow2 TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base image: TEST_DIR/t.IMGFMT.base file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 Testing: convert -O qcow2 -o cluster_size=4k -o lazy_refcounts=on TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base image: TEST_DIR/t.IMGFMT.base file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 4096 Format specific information: compat: 1.1 @@ -300,7 +306,7 @@ Format specific information: Testing: convert -O qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base image: TEST_DIR/t.IMGFMT.base file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 8192 Format specific information: compat: 1.1 @@ -311,7 +317,7 @@ Format specific information: Testing: convert -O qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base image: TEST_DIR/t.IMGFMT.base file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 8192 === convert: help for -o === @@ -516,7 +522,7 @@ Testing: convert -O qcow2 -o backing_file=TEST_DIR/t.qcow2 -o ,, -o help TEST_DI qemu-img: Invalid option list: ,, Testing: convert -O qcow2 -o help -Supported options: +Supported qcow2 options: backing_file=<str> - File name of a base image backing_fmt=<str> - Image format of the base image cluster_size=<size> - qcow2 cluster size @@ -537,10 +543,16 @@ Supported options: refcount_bits=<num> - Width of a reference count entry in bits size=<size> - Virtual disk size +The protocol level may support further options. +Specify the target filename to include those options. + Testing: convert -o help -Supported options: +Supported raw options: size=<size> - Virtual disk size +The protocol level may support further options. +Specify the target filename to include those options. + Testing: convert -O bochs -o help qemu-img: Format driver 'bochs' does not support image creation @@ -560,7 +572,7 @@ qemu-img: Cannot enable copy offloading when -c is used Testing: amend -f foo -f qcow2 -o lazy_refcounts=on TEST_DIR/t.qcow2 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -571,7 +583,7 @@ Format specific information: Testing: amend -f qcow2 -o size=130M -o lazy_refcounts=off TEST_DIR/t.qcow2 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 130M (136314880 bytes) +virtual size: 130 MiB (136314880 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -582,7 +594,7 @@ Format specific information: Testing: amend -f qcow2 -o size=8M -o lazy_refcounts=on -o size=132M TEST_DIR/t.qcow2 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 132M (138412032 bytes) +virtual size: 132 MiB (138412032 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -593,7 +605,7 @@ Format specific information: Testing: amend -f qcow2 -o size=4M,size=148M TEST_DIR/t.qcow2 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 148M (155189248 bytes) +virtual size: 148 MiB (155189248 bytes) cluster_size: 65536 === amend: help for -o === @@ -831,9 +843,8 @@ Creation options for 'qcow2': Note that not all of these options may be amendable. -Testing: convert -o help -Supported options: - size=<size> - Virtual disk size +Testing: amend -o help +qemu-img: Expecting one image file name Testing: amend -f bochs -o help qemu-img: Format driver 'bochs' does not support option amendment diff --git a/tests/qemu-iotests/084.out b/tests/qemu-iotests/084.out index 5c5ab928c9..c2648d963f 100644 --- a/tests/qemu-iotests/084.out +++ b/tests/qemu-iotests/084.out @@ -5,7 +5,7 @@ QA output created by 084 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 1048576 disk image file size in bytes: 67109888 @@ -14,13 +14,13 @@ disk image file size in bytes: 67109888 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 1048576 disk image file size in bytes: 1024 Test 1: Maximum size (512 TB - 128 MB): image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 512T (562949819203584 bytes) +virtual size: 512 TiB (562949819203584 bytes) cluster_size: 1048576 Test 2: Size too large (512 TB - 128 MB + 64 kB) @@ -35,7 +35,7 @@ qemu-img: Could not open 'TEST_DIR/t.IMGFMT': unsupported VDI image (too many bl Test 5: Valid Image: 64MB, Blocks In Image 64, Block Size 1MB image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 1048576 Test 6: Block Size != 1MB; too small test (1MB - 1) diff --git a/tests/qemu-iotests/088.out b/tests/qemu-iotests/088.out index 1f6bcf0abc..814be7181d 100644 --- a/tests/qemu-iotests/088.out +++ b/tests/qemu-iotests/088.out @@ -2,10 +2,10 @@ QA output created by 088 == Invalid block size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.vpc: Invalid block size 0 -can't open device TEST_DIR/t.vpc: Invalid block size 0 -can't open device TEST_DIR/t.vpc: Invalid block size 128 -can't open device TEST_DIR/t.vpc: Invalid block size 128 -can't open device TEST_DIR/t.vpc: Invalid block size 305419896 -can't open device TEST_DIR/t.vpc: Invalid block size 305419896 +qemu-io: can't open device TEST_DIR/t.vpc: Invalid block size 0 +qemu-io: can't open device TEST_DIR/t.vpc: Invalid block size 0 +qemu-io: can't open device TEST_DIR/t.vpc: Invalid block size 128 +qemu-io: can't open device TEST_DIR/t.vpc: Invalid block size 128 +qemu-io: can't open device TEST_DIR/t.vpc: Invalid block size 305419896 +qemu-io: can't open device TEST_DIR/t.vpc: Invalid block size 305419896 *** done diff --git a/tests/qemu-iotests/089.out b/tests/qemu-iotests/089.out index 89e3e4340a..20c8ce8f0e 100644 --- a/tests/qemu-iotests/089.out +++ b/tests/qemu-iotests/089.out @@ -38,7 +38,7 @@ read failed: Input/output error image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 === Testing option merging === diff --git a/tests/qemu-iotests/095.out b/tests/qemu-iotests/095.out index 8c093dfff3..d2e393fef8 100644 --- a/tests/qemu-iotests/095.out +++ b/tests/qemu-iotests/095.out @@ -6,7 +6,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=104857600 backing_file=TEST_DIR/ === Base image info before commit and resize === image: TEST_DIR/t.IMGFMT.base file format: IMGFMT -virtual size: 5.0M (5242880 bytes) +virtual size: 5 MiB (5242880 bytes) === Running QEMU Live Commit Test === @@ -23,5 +23,5 @@ virtual size: 5.0M (5242880 bytes) === Base image info after commit and resize === image: TEST_DIR/t.IMGFMT.base file format: IMGFMT -virtual size: 100M (104857600 bytes) +virtual size: 100 MiB (104857600 bytes) *** done diff --git a/tests/qemu-iotests/103.out b/tests/qemu-iotests/103.out index bd9eec3250..16704cf499 100644 --- a/tests/qemu-iotests/103.out +++ b/tests/qemu-iotests/103.out @@ -5,13 +5,13 @@ wrote 65536/65536 bytes at offset 0 === Testing invalid option combinations === -can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-size and refcount-cache-size may not be set at the same time -can't open device TEST_DIR/t.IMGFMT: l2-cache-size may not exceed cache-size -can't open device TEST_DIR/t.IMGFMT: refcount-cache-size may not exceed cache-size -can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-size and refcount-cache-size may not be set at the same time -can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be a power of two between 512 and the cluster size (65536) -can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be a power of two between 512 and the cluster size (65536) -can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be a power of two between 512 and the cluster size (65536) +qemu-io: can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-size and refcount-cache-size may not be set at the same time +qemu-io: can't open device TEST_DIR/t.IMGFMT: l2-cache-size may not exceed cache-size +qemu-io: can't open device TEST_DIR/t.IMGFMT: refcount-cache-size may not exceed cache-size +qemu-io: can't open device TEST_DIR/t.IMGFMT: cache-size, l2-cache-size and refcount-cache-size may not be set at the same time +qemu-io: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be a power of two between 512 and the cluster size (65536) +qemu-io: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be a power of two between 512 and the cluster size (65536) +qemu-io: can't open device TEST_DIR/t.IMGFMT: L2 cache entry size must be a power of two between 512 and the cluster size (65536) === Testing valid option combinations === diff --git a/tests/qemu-iotests/104.out b/tests/qemu-iotests/104.out index ab8d892c2a..d854155f5b 100644 --- a/tests/qemu-iotests/104.out +++ b/tests/qemu-iotests/104.out @@ -4,9 +4,9 @@ QA output created by 104 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1024 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 1.0K (1024 bytes) +virtual size: 1 KiB (1024 bytes) Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1234 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 1.5K (1536 bytes) -***done +virtual size: 1.5 KiB (1536 bytes) +*** done diff --git a/tests/qemu-iotests/110.out b/tests/qemu-iotests/110.out index 46e6a60510..f60b26390e 100644 --- a/tests/qemu-iotests/110.out +++ b/tests/qemu-iotests/110.out @@ -6,14 +6,14 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=t.IMGFMT.base image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) === Non-reconstructable filename === image: json:{"driver": "IMGFMT", "file": {"set-state.0.event": "read_aio", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "set-state.0.new_state": 42}} file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) === Backing name is always relative to the backed image === @@ -24,6 +24,6 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=t.IMGFMT.b image: json:{"driver": "IMGFMT", "file": {"children": [{"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.copy"}], "driver": "quorum", "vote-threshold": 1}} file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: t.IMGFMT.base (cannot determine actual path) *** done diff --git a/tests/qemu-iotests/114.out b/tests/qemu-iotests/114.out index 1a47a526b9..67adef37a4 100644 --- a/tests/qemu-iotests/114.out +++ b/tests/qemu-iotests/114.out @@ -3,11 +3,11 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: foo -can't open device TEST_DIR/t.qcow2: Could not open backing file: Unknown driver 'foo' +qemu-io: can't open device TEST_DIR/t.qcow2: Could not open backing file: Unknown driver 'foo' no file open, try 'help open' read 4096/4096 bytes at offset 0 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) diff --git a/tests/qemu-iotests/116.out b/tests/qemu-iotests/116.out index 24bee57783..49f9a261a0 100644 --- a/tests/qemu-iotests/116.out +++ b/tests/qemu-iotests/116.out @@ -2,29 +2,29 @@ QA output created by 116 == truncated header cluster == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument +qemu-io: can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument == invalid header magic == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Image not in QED format +qemu-io: can't open device TEST_DIR/t.qed: Image not in QED format == invalid cluster size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument +qemu-io: can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument == invalid table size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument +qemu-io: can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument == invalid header size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument +qemu-io: can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument == invalid L1 table offset == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument +qemu-io: can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument == invalid image size == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 -can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument +qemu-io: can't open device TEST_DIR/t.qed: Could not open 'TEST_DIR/t.qed': Invalid argument *** done diff --git a/tests/qemu-iotests/126.out b/tests/qemu-iotests/126.out index 17d03d5248..e3c4d61916 100644 --- a/tests/qemu-iotests/126.out +++ b/tests/qemu-iotests/126.out @@ -11,13 +11,13 @@ Formatting 'TEST_DIR/image:base.IMGFMT', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/image:top.IMGFMT', fmt=IMGFMT size=67108864 backing_file=./image:base.IMGFMT image: TEST_DIR/image:top.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: ./image:base.IMGFMT (actual path: TEST_DIR/./image:base.IMGFMT) Formatting 'base.IMGFMT', fmt=IMGFMT size=67108864 Formatting 'file:image:top.IMGFMT', fmt=IMGFMT size=67108864 backing_file=base.IMGFMT image: ./image:top.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: base.IMGFMT (actual path: ./base.IMGFMT) *** done diff --git a/tests/qemu-iotests/130.out b/tests/qemu-iotests/130.out index 93020c328e..e45285ccc3 100644 --- a/tests/qemu-iotests/130.out +++ b/tests/qemu-iotests/130.out @@ -4,7 +4,7 @@ Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) === HMP commit === @@ -13,14 +13,14 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.orig backing_fmt=raw QEMU X.Y.Z monitor - type 'help' for more information (qemu) commit testdisk (qemu) image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: TEST_DIR/t.IMGFMT.orig backing file format: raw @@ -31,13 +31,13 @@ wrote 4096/4096 bytes at offset 0 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.orig backing_fmt=raw wrote 4096/4096 bytes at offset 0 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) backing file: TEST_DIR/t.IMGFMT.orig backing file format: raw *** done diff --git a/tests/qemu-iotests/131.out b/tests/qemu-iotests/131.out index 27c2c5389b..70da03dee5 100644 --- a/tests/qemu-iotests/131.out +++ b/tests/qemu-iotests/131.out @@ -22,7 +22,7 @@ read 32768/32768 bytes at offset 163840 read 32768/32768 bytes at offset 0 32 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) == Corrupt image == -can't open device TEST_DIR/t.parallels: parallels: Image was not closed correctly; cannot be opened read/write +qemu-io: can't open device TEST_DIR/t.parallels: parallels: Image was not closed correctly; cannot be opened read/write ERROR image was not closed correctly 1 errors were found on the image. diff --git a/tests/qemu-iotests/133.out b/tests/qemu-iotests/133.out index 414c7fa27f..1491ef45a9 100644 --- a/tests/qemu-iotests/133.out +++ b/tests/qemu-iotests/133.out @@ -4,18 +4,18 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t === Check that node-name can't be changed === -Cannot change the option 'node-name' -Cannot change the option 'node-name' -Cannot change the option 'node-name' +qemu-io: Cannot change the option 'node-name' +qemu-io: Cannot change the option 'node-name' +qemu-io: Cannot change the option 'node-name' === Check that unchanged node-name is okay === === Check that driver can't be changed === -Cannot change the option 'driver' -Cannot change the option 'driver' -Cannot change the option 'driver' +qemu-io: Cannot change the option 'driver' +qemu-io: Cannot change the option 'driver' +qemu-io: Cannot change the option 'driver' === Check that unchanged driver is okay === @@ -27,16 +27,16 @@ format name: null-co === Check that mixing -c/-r/-w and their corresponding options is forbidden === -Cannot set both -r/-w and 'read-only' -Cannot set both -r/-w and 'read-only' -Cannot set both -c and the cache options -Cannot set both -c and the cache options -Cannot set both -c and the cache options +qemu-io: Cannot set both -r/-w and 'read-only' +qemu-io: Cannot set both -r/-w and 'read-only' +qemu-io: Cannot set both -c and the cache options +qemu-io: Cannot set both -c and the cache options +qemu-io: Cannot set both -c and the cache options === Check that invalid options are handled correctly === -Parameter 'read-only' expects 'on' or 'off' -Parameter 'cache.no-flush' expects 'on' or 'off' -Parameter 'cache.direct' expects 'on' or 'off' -Parameter 'auto-read-only' expects 'on' or 'off' +qemu-io: Parameter 'read-only' expects 'on' or 'off' +qemu-io: Parameter 'cache.no-flush' expects 'on' or 'off' +qemu-io: Parameter 'cache.direct' expects 'on' or 'off' +qemu-io: Parameter 'auto-read-only' expects 'on' or 'off' *** done diff --git a/tests/qemu-iotests/137.out b/tests/qemu-iotests/137.out index 2c080b72f3..22d59df40c 100644 --- a/tests/qemu-iotests/137.out +++ b/tests/qemu-iotests/137.out @@ -15,24 +15,24 @@ read 33554432/33554432 bytes at offset 0 === Try setting some invalid values === -Parameter 'lazy-refcounts' expects 'on' or 'off' -cache-size, l2-cache-size and refcount-cache-size may not be set at the same time -l2-cache-size may not exceed cache-size -refcount-cache-size may not exceed cache-size -L2 cache entry size must be a power of two between 512 and the cluster size (65536) -L2 cache entry size must be a power of two between 512 and the cluster size (65536) -Refcount cache size too big -Conflicting values for qcow2 options 'overlap-check' ('constant') and 'overlap-check.template' ('all') -Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all -Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all -Cache clean interval too big +qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off' +qemu-io: cache-size, l2-cache-size and refcount-cache-size may not be set at the same time +qemu-io: l2-cache-size may not exceed cache-size +qemu-io: refcount-cache-size may not exceed cache-size +qemu-io: L2 cache entry size must be a power of two between 512 and the cluster size (65536) +qemu-io: L2 cache entry size must be a power of two between 512 and the cluster size (65536) +qemu-io: Refcount cache size too big +qemu-io: Conflicting values for qcow2 options 'overlap-check' ('constant') and 'overlap-check.template' ('all') +qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all +qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all +qemu-io: Cache clean interval too big Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=36028797018963968 -L2 cache size too big +qemu-io: L2 cache size too big Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 === Test transaction semantics === -Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all +qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are any of the following: none, constant, cached, all wrote 512/512 bytes at offset 0 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ./common.rc: Killed ( if [ "${VALGRIND_QEMU}" == "y" ]; then @@ -44,7 +44,7 @@ incompatible_features 0x0 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -Parameter 'lazy-refcounts' expects 'on' or 'off' +qemu-io: Parameter 'lazy-refcounts' expects 'on' or 'off' qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with qcow2_header); further corruption events will be suppressed write failed: Input/output error *** done diff --git a/tests/qemu-iotests/140.out b/tests/qemu-iotests/140.out index 704adcef40..67fe44a3e3 100644 --- a/tests/qemu-iotests/140.out +++ b/tests/qemu-iotests/140.out @@ -8,7 +8,7 @@ wrote 65536/65536 bytes at offset 0 read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) {"return": {}} -can't open device nbd+unix:///drv?socket=TEST_DIR/nbd: Requested export not available +qemu-io: can't open device nbd+unix:///drv?socket=TEST_DIR/nbd: Requested export not available server reported: export 'drv' not present {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out index 3e55fcd0ac..ee71b5aa42 100644 --- a/tests/qemu-iotests/143.out +++ b/tests/qemu-iotests/143.out @@ -1,7 +1,7 @@ QA output created by 143 {"return": {}} {"return": {}} -can't open device nbd+unix:///no_such_export?socket=TEST_DIR/nbd: Requested export not available +qemu-io: can't open device nbd+unix:///no_such_export?socket=TEST_DIR/nbd: Requested export not available server reported: export 'no_such_export' not present {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} diff --git a/tests/qemu-iotests/153.out b/tests/qemu-iotests/153.out index 9747ce3c41..e969420006 100644 --- a/tests/qemu-iotests/153.out +++ b/tests/qemu-iotests/153.out @@ -23,20 +23,20 @@ Is another process using the image [TEST_DIR/t.qcow2]? == Running utility commands == _qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2 -can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? _qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2 -can't open device TEST_DIR/t.qcow2: Failed to get shared "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get shared "write" lock Is another process using the image [TEST_DIR/t.qcow2]? _qemu_io_wrapper -c open TEST_DIR/t.qcow2 -c read 0 512 -can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? no file open, try 'help open' _qemu_io_wrapper -c open -r TEST_DIR/t.qcow2 -c read 0 512 -can't open device TEST_DIR/t.qcow2: Failed to get shared "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get shared "write" lock Is another process using the image [TEST_DIR/t.qcow2]? no file open, try 'help open' @@ -100,12 +100,12 @@ file format: IMGFMT == Running utility commands -U == _qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2 -can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images +qemu-io: can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images _qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2 _qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512 -can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images +qemu-io: can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images no file open, try 'help open' _qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512 @@ -166,13 +166,13 @@ Is another process using the image [TEST_DIR/t.qcow2]? == Running utility commands == _qemu_io_wrapper -c read 0 512 TEST_DIR/t.qcow2 -can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? _qemu_io_wrapper -r -c read 0 512 TEST_DIR/t.qcow2 _qemu_io_wrapper -c open TEST_DIR/t.qcow2 -c read 0 512 -can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? no file open, try 'help open' @@ -222,12 +222,12 @@ file format: IMGFMT == Running utility commands -U == _qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2 -can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images +qemu-io: can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images _qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2 _qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512 -can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images +qemu-io: can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images no file open, try 'help open' _qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512 @@ -325,12 +325,12 @@ file format: IMGFMT == Running utility commands -U == _qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2 -can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images +qemu-io: can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images _qemu_io_wrapper -U -r -c read 0 512 TEST_DIR/t.qcow2 _qemu_io_wrapper -c open -U TEST_DIR/t.qcow2 -c read 0 512 -can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images +qemu-io: can't open device TEST_DIR/t.qcow2: force-share=on can only be used with read-only images no file open, try 'help open' _qemu_io_wrapper -c open -r -U TEST_DIR/t.qcow2 -c read 0 512 @@ -420,7 +420,7 @@ Adding drive {"return": "OKrn"} _qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512 -can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? Creating overlay with qemu-img when the guest is running should be allowed @@ -437,7 +437,7 @@ _qemu_img_wrapper info TEST_DIR/t.qcow2 {"return": ""} _qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512 -can't open device TEST_DIR/t.qcow2: Failed to get "write" lock +qemu-io: can't open device TEST_DIR/t.qcow2: Failed to get "write" lock Is another process using the image [TEST_DIR/t.qcow2]? Closing the other {"return": ""} @@ -449,7 +449,7 @@ _qemu_io_wrapper TEST_DIR/t.qcow2 -c write 0 512 No conflict: image: null-co:// file format: null-co -virtual size: 1.0G (1073741824 bytes) +virtual size: 1 GiB (1073741824 bytes) disk size: unavailable Conflict: @@ -458,5 +458,5 @@ qemu-img: --force-share/-U conflicts with image options No conflict: Conflict: --U conflicts with image options +qemu-io: -U conflicts with image options *** done diff --git a/tests/qemu-iotests/187.out b/tests/qemu-iotests/187.out index 30b987f71f..86203d8abc 100644 --- a/tests/qemu-iotests/187.out +++ b/tests/qemu-iotests/187.out @@ -3,16 +3,16 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 Start from read-only -Block node is read-only +qemu-io: Block node is read-only wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -Block node is read-only +qemu-io: Block node is read-only Start from read-write wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -Block node is read-only +qemu-io: Block node is read-only wrote 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) *** done diff --git a/tests/qemu-iotests/188.out b/tests/qemu-iotests/188.out index 8af24e5d8b..97b1402671 100644 --- a/tests/qemu-iotests/188.out +++ b/tests/qemu-iotests/188.out @@ -14,5 +14,5 @@ read 16777216/16777216 bytes at offset 0 16 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) == verify open failure with wrong password == -can't open: Invalid password, cannot unlock any keyslot +qemu-io: can't open: Invalid password, cannot unlock any keyslot *** done diff --git a/tests/qemu-iotests/191.out b/tests/qemu-iotests/191.out index a513ccca0b..3fc92bb56e 100644 --- a/tests/qemu-iotests/191.out +++ b/tests/qemu-iotests/191.out @@ -395,13 +395,13 @@ wrote 65536/65536 bytes at offset 1048576 } image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: IMGFMT image: TEST_DIR/t.IMGFMT.ovl2 file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: IMGFMT @@ -813,13 +813,13 @@ wrote 65536/65536 bytes at offset 1048576 } image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: IMGFMT image: TEST_DIR/t.IMGFMT.ovl2 file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: TEST_DIR/t.IMGFMT.base backing file format: IMGFMT diff --git a/tests/qemu-iotests/195.out b/tests/qemu-iotests/195.out index 1e9330b1be..e6df0d6781 100644 --- a/tests/qemu-iotests/195.out +++ b/tests/qemu-iotests/195.out @@ -35,7 +35,7 @@ Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,backing.node-name=mid image: TEST_DIR/t.IMGFMT.mid file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: /dev/null backing file format: IMGFMT @@ -73,7 +73,7 @@ Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,node-name=top image: TEST_DIR/t.IMGFMT file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 backing file: /dev/null backing file format: IMGFMT diff --git a/tests/qemu-iotests/197.out b/tests/qemu-iotests/197.out index 8febda5dea..7ca46be6e4 100644 --- a/tests/qemu-iotests/197.out +++ b/tests/qemu-iotests/197.out @@ -16,7 +16,7 @@ read 2147483136/2147483136 bytes at offset 1024 2 GiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 1024/1024 bytes at offset 3221226496 1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -can't open device TEST_DIR/t.wrap.qcow2: Can't use copy-on-read on read-only device +qemu-io: can't open device TEST_DIR/t.wrap.qcow2: Can't use copy-on-read on read-only device 2 GiB (0x80010000) bytes allocated at offset 0 bytes (0x0) 1023.938 MiB (0x3fff0000) bytes not allocated at offset 2 GiB (0x80010000) 64 KiB (0x10000) bytes allocated at offset 3 GiB (0xc0000000) diff --git a/tests/qemu-iotests/198.out b/tests/qemu-iotests/198.out index adb805cce9..e86b175e39 100644 --- a/tests/qemu-iotests/198.out +++ b/tests/qemu-iotests/198.out @@ -34,7 +34,7 @@ read 16777216/16777216 bytes at offset 0 == checking image base == image: json:{"encrypt.key-secret": "sec0", "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.base"}} file format: IMGFMT -virtual size: 16M (16777216 bytes) +virtual size: 16 MiB (16777216 bytes) Format specific information: encrypt: ivgen alg: plain64 @@ -76,7 +76,7 @@ Format specific information: == checking image layer == image: json:{"encrypt.key-secret": "sec1", "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}} file format: IMGFMT -virtual size: 16M (16777216 bytes) +virtual size: 16 MiB (16777216 bytes) backing file: TEST_DIR/t.IMGFMT.base Format specific information: encrypt: diff --git a/tests/qemu-iotests/205 b/tests/qemu-iotests/205 index 31b2f5707a..69f2c1d392 100755 --- a/tests/qemu-iotests/205 +++ b/tests/qemu-iotests/205 @@ -78,7 +78,7 @@ class TestNbdServerRemove(iotests.QMPTestCase): def assertConnectFailed(self, qemu_io_output): self.assertEqual(filter_qemu_io(qemu_io_output).strip(), - "can't open device " + nbd_uri + + "qemu-io: can't open device " + nbd_uri + ": Requested export not available\n" "server reported: export 'exp' not present") diff --git a/tests/qemu-iotests/206.out b/tests/qemu-iotests/206.out index 0f1c23babb..61e7241e0b 100644 --- a/tests/qemu-iotests/206.out +++ b/tests/qemu-iotests/206.out @@ -14,7 +14,7 @@ image: TEST_IMG file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -36,7 +36,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -58,7 +58,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) cluster_size: 2097152 Format specific information: compat: 1.1 @@ -80,7 +80,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) cluster_size: 512 backing file: TEST_IMG.base backing file format: IMGFMT @@ -97,7 +97,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) encrypted: yes cluster_size: 65536 Format specific information: diff --git a/tests/qemu-iotests/207.out b/tests/qemu-iotests/207.out index 568e8619d0..979d5cf745 100644 --- a/tests/qemu-iotests/207.out +++ b/tests/qemu-iotests/207.out @@ -7,12 +7,12 @@ image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}} file format: IMGFMT -virtual size: 4.0M (4194304 bytes) +virtual size: 4 MiB (4194304 bytes) image: TEST_IMG file format: IMGFMT -virtual size: 4.0M (4194304 bytes) +virtual size: 4 MiB (4194304 bytes) === Test host-key-check options === @@ -23,7 +23,7 @@ virtual size: 4.0M (4194304 bytes) image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}} file format: IMGFMT -virtual size: 8.0M (8388608 bytes) +virtual size: 8 MiB (8388608 bytes) {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "ssh", "location": {"host-key-check": {"mode": "known_hosts"}, "path": "TEST_DIR/PID-t.img", "server": {"host": "127.0.0.1", "port": "22"}}, "size": 4194304}}} {"return": {}} @@ -32,7 +32,7 @@ virtual size: 8.0M (8388608 bytes) image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}} file format: IMGFMT -virtual size: 4.0M (4194304 bytes) +virtual size: 4 MiB (4194304 bytes) {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "ssh", "location": {"host-key-check": {"hash": "wrong", "mode": "hash", "type": "md5"}, "path": "TEST_DIR/PID-t.img", "server": {"host": "127.0.0.1", "port": "22"}}, "size": 2097152}}} {"return": {}} @@ -47,7 +47,7 @@ Job failed: remote host key does not match host_key_check 'wrong' image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}} file format: IMGFMT -virtual size: 8.0M (8388608 bytes) +virtual size: 8 MiB (8388608 bytes) {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "ssh", "location": {"host-key-check": {"hash": "wrong", "mode": "hash", "type": "sha1"}, "path": "TEST_DIR/PID-t.img", "server": {"host": "127.0.0.1", "port": "22"}}, "size": 2097152}}} {"return": {}} @@ -62,7 +62,7 @@ Job failed: remote host key does not match host_key_check 'wrong' image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}} file format: IMGFMT -virtual size: 4.0M (4194304 bytes) +virtual size: 4 MiB (4194304 bytes) === Invalid path and user === diff --git a/tests/qemu-iotests/210.out b/tests/qemu-iotests/210.out index a3692ce00d..a5e88e2a82 100644 --- a/tests/qemu-iotests/210.out +++ b/tests/qemu-iotests/210.out @@ -14,7 +14,7 @@ image: json:{"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_IMG"}, "key-secret": "keysec0"} file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) encrypted: yes Format specific information: ivgen alg: plain64 @@ -66,7 +66,7 @@ Format specific information: image: json:{"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_IMG"}, "key-secret": "keysec0"} file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) encrypted: yes Format specific information: ivgen alg: plain64 @@ -121,7 +121,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi image: json:{"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_IMG"}, "key-secret": "keysec0"} file format: IMGFMT -virtual size: 0 (0 bytes) +virtual size: 0 B (0 bytes) encrypted: yes Format specific information: ivgen alg: plain64 @@ -191,7 +191,7 @@ Job failed: The requested file size is too large {"error": {"class": "GenericError", "desc": "Parameter 'size' expects a >0 size"}} image: json:{"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_IMG"}, "key-secret": "keysec0"} file format: IMGFMT -virtual size: 0 (0 bytes) +virtual size: 0 B (0 bytes) encrypted: yes Format specific information: ivgen alg: plain64 diff --git a/tests/qemu-iotests/211.out b/tests/qemu-iotests/211.out index 682adc2a10..b83384deea 100644 --- a/tests/qemu-iotests/211.out +++ b/tests/qemu-iotests/211.out @@ -14,7 +14,7 @@ image: TEST_IMG file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 1048576 [{ "start": 0, "length": 134217728, "depth": 0, "zero": true, "data": false}] @@ -33,7 +33,7 @@ cluster_size: 1048576 image: TEST_IMG file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 1048576 [{ "start": 0, "length": 67108864, "depth": 0, "zero": true, "data": false}] @@ -52,7 +52,7 @@ cluster_size: 1048576 image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) cluster_size: 1048576 [{ "start": 0, "length": 3072, "depth": 0, "zero": false, "data": true, "offset": 1024}, @@ -75,7 +75,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi image: TEST_IMG file format: IMGFMT -virtual size: 0 (0 bytes) +virtual size: 0 B (0 bytes) cluster_size: 1048576 === Maximum size === @@ -87,7 +87,7 @@ cluster_size: 1048576 image: TEST_IMG file format: IMGFMT -virtual size: 512T (562949819203584 bytes) +virtual size: 512 TiB (562949819203584 bytes) cluster_size: 1048576 === Invalid sizes === diff --git a/tests/qemu-iotests/212.out b/tests/qemu-iotests/212.out index 22810720cf..1538d679be 100644 --- a/tests/qemu-iotests/212.out +++ b/tests/qemu-iotests/212.out @@ -14,7 +14,7 @@ image: TEST_IMG file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) === Successful image creation (explicit defaults) === @@ -30,7 +30,7 @@ virtual size: 128M (134217728 bytes) image: TEST_IMG file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) === Successful image creation (with non-default options) === @@ -46,7 +46,7 @@ virtual size: 64M (67108864 bytes) image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) === Invalid BlockdevRef === @@ -65,7 +65,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi image: TEST_IMG file format: IMGFMT -virtual size: 0 (0 bytes) +virtual size: 0 B (0 bytes) === Maximum size === @@ -76,7 +76,7 @@ virtual size: 0 (0 bytes) image: TEST_IMG file format: IMGFMT -virtual size: 4096T (4503599627369984 bytes) +virtual size: 4 PiB (4503599627369984 bytes) === Invalid sizes === diff --git a/tests/qemu-iotests/213.out b/tests/qemu-iotests/213.out index 169083e08e..be4ae85180 100644 --- a/tests/qemu-iotests/213.out +++ b/tests/qemu-iotests/213.out @@ -14,7 +14,7 @@ image: TEST_IMG file format: IMGFMT -virtual size: 128M (134217728 bytes) +virtual size: 128 MiB (134217728 bytes) cluster_size: 8388608 === Successful image creation (explicit defaults) === @@ -31,7 +31,7 @@ cluster_size: 8388608 image: TEST_IMG file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 8388608 === Successful image creation (with non-default options) === @@ -48,7 +48,7 @@ cluster_size: 8388608 image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) cluster_size: 268435456 === Invalid BlockdevRef === @@ -68,7 +68,7 @@ Job failed: Cannot find device=this doesn't exist nor node_name=this doesn't exi image: TEST_IMG file format: IMGFMT -virtual size: 0 (0 bytes) +virtual size: 0 B (0 bytes) cluster_size: 8388608 === Maximum size === @@ -80,7 +80,7 @@ cluster_size: 8388608 image: TEST_IMG file format: IMGFMT -virtual size: 64T (70368744177664 bytes) +virtual size: 64 TiB (70368744177664 bytes) cluster_size: 67108864 === Invalid sizes === diff --git a/tests/qemu-iotests/215.out b/tests/qemu-iotests/215.out index 70b0f5fb19..5a2fe40d03 100644 --- a/tests/qemu-iotests/215.out +++ b/tests/qemu-iotests/215.out @@ -16,7 +16,7 @@ read 2147483136/2147483136 bytes at offset 1024 2 GiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 1024/1024 bytes at offset 3221226496 1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -can't open device TEST_DIR/t.wrap.qcow2: Block node is read-only +qemu-io: can't open device TEST_DIR/t.wrap.qcow2: Block node is read-only 2 GiB (0x80010000) bytes allocated at offset 0 bytes (0x0) 1023.938 MiB (0x3fff0000) bytes not allocated at offset 2 GiB (0x80010000) 64 KiB (0x10000) bytes allocated at offset 3 GiB (0xc0000000) diff --git a/tests/qemu-iotests/226.out b/tests/qemu-iotests/226.out index 8c0d060ffc..42be973ff2 100644 --- a/tests/qemu-iotests/226.out +++ b/tests/qemu-iotests/226.out @@ -3,24 +3,24 @@ QA output created by 226 === Testing with driver:file === == Testing RO == -can't open: A regular file was expected by the 'file' driver, but something else was given -warning: Opening a character device as a file using the 'file' driver is deprecated +qemu-io: can't open: A regular file was expected by the 'file' driver, but something else was given +qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated == Testing RW == -can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory -warning: Opening a character device as a file using the 'file' driver is deprecated +qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory +qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated === Testing with driver:host_device === == Testing RO == -can't open: 'host_device' driver expects either a character or block device +qemu-io: can't open: 'host_device' driver expects either a character or block device == Testing RW == -can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory +qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory === Testing with driver:host_cdrom === == Testing RO == -can't open: 'host_cdrom' driver expects either a character or block device +qemu-io: can't open: 'host_cdrom' driver expects either a character or block device == Testing RW == -can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory +qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory *** done diff --git a/tests/qemu-iotests/233.out b/tests/qemu-iotests/233.out index 9511b6ea65..4edc2dd5cf 100644 --- a/tests/qemu-iotests/233.out +++ b/tests/qemu-iotests/233.out @@ -28,11 +28,11 @@ server reported: Option 0x8 not permitted before TLS == check TLS works == image: nbd://127.0.0.1:PORT file format: nbd -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) disk size: unavailable image: nbd://127.0.0.1:PORT file format: nbd -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) disk size: unavailable exports available: 1 export: '' diff --git a/tests/qemu-iotests/237.out b/tests/qemu-iotests/237.out index 2aaa68f672..a8c800bfad 100644 --- a/tests/qemu-iotests/237.out +++ b/tests/qemu-iotests/237.out @@ -14,7 +14,7 @@ image: TEST_IMG file format: IMGFMT -virtual size: 5.0G (5368709120 bytes) +virtual size: 5 GiB (5368709120 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX @@ -41,7 +41,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 64M (67108864 bytes) +virtual size: 64 MiB (67108864 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX @@ -68,7 +68,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 32M (33554432 bytes) +virtual size: 32 MiB (33554432 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX @@ -169,7 +169,7 @@ Job failed: List of extents contains unused extents image: TEST_IMG file format: IMGFMT -virtual size: 512 (512 bytes) +virtual size: 512 B (512 bytes) Format specific information: cid: XXXXXXXXXX parent cid: XXXXXXXXXX @@ -189,7 +189,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 512 (512 bytes) +virtual size: 512 B (512 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX @@ -211,7 +211,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 1.0G (1073741824 bytes) +virtual size: 1 GiB (1073741824 bytes) Format specific information: cid: XXXXXXXXXX parent cid: XXXXXXXXXX @@ -231,7 +231,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 1.0G (1073741824 bytes) +virtual size: 1 GiB (1073741824 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX @@ -253,7 +253,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 2.0G (2147483648 bytes) +virtual size: 2 GiB (2147483648 bytes) Format specific information: cid: XXXXXXXXXX parent cid: XXXXXXXXXX @@ -273,7 +273,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 2.0G (2147483648 bytes) +virtual size: 2 GiB (2147483648 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX @@ -295,7 +295,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 5.0G (5368709120 bytes) +virtual size: 5 GiB (5368709120 bytes) Format specific information: cid: XXXXXXXXXX parent cid: XXXXXXXXXX @@ -323,7 +323,7 @@ Format specific information: image: TEST_IMG file format: IMGFMT -virtual size: 5.0G (5368709120 bytes) +virtual size: 5 GiB (5368709120 bytes) cluster_size: 65536 Format specific information: cid: XXXXXXXXXX diff --git a/tests/qemu-iotests/242.out b/tests/qemu-iotests/242.out index fbe05d71c0..7ac8404d11 100644 --- a/tests/qemu-iotests/242.out +++ b/tests/qemu-iotests/242.out @@ -8,7 +8,7 @@ qemu-img info dump: image: TEST_IMG file format: IMGFMT -virtual size: 1.0M (1048576 bytes) +virtual size: 1 MiB (1048576 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -28,7 +28,7 @@ qemu-img info dump: image: TEST_IMG file format: IMGFMT -virtual size: 1.0M (1048576 bytes) +virtual size: 1 MiB (1048576 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -60,7 +60,7 @@ qemu-img info dump: image: TEST_IMG file format: IMGFMT -virtual size: 1.0M (1048576 bytes) +virtual size: 1 MiB (1048576 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -100,7 +100,7 @@ qemu-img info dump: image: TEST_IMG file format: IMGFMT -virtual size: 1.0M (1048576 bytes) +virtual size: 1 MiB (1048576 bytes) cluster_size: 65536 Format specific information: compat: 1.1 @@ -149,7 +149,7 @@ Unset the unknown bitmap flag '0x4' in the bitmap directory entry: image: TEST_IMG file format: IMGFMT -virtual size: 1.0M (1048576 bytes) +virtual size: 1 MiB (1048576 bytes) cluster_size: 65536 Format specific information: compat: 1.1 diff --git a/tests/qemu-iotests/244.out b/tests/qemu-iotests/244.out index 98e5946976..6a3d0067cc 100644 --- a/tests/qemu-iotests/244.out +++ b/tests/qemu-iotests/244.out @@ -9,22 +9,22 @@ read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': No such file or directory +qemu-io: can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': No such file or directory no file open, try 'help open' Data file required, but without data file name in the image: -can't open device TEST_DIR/t.qcow2: 'data-file' is required for this image +qemu-io: can't open device TEST_DIR/t.qcow2: 'data-file' is required for this image no file open, try 'help open' read 65536/65536 bytes at offset 0 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': No such file or directory +qemu-io: can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': No such file or directory no file open, try 'help open' Setting data-file for an image with internal data: Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 -can't open device TEST_DIR/t.qcow2: 'data-file' can only be set for images with an external data file +qemu-io: can't open device TEST_DIR/t.qcow2: 'data-file' can only be set for images with an external data file no file open, try 'help open' -can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': No such file or directory +qemu-io: can't open device TEST_DIR/t.qcow2: Could not open 'inexistent': No such file or directory no file open, try 'help open' === Conflicting features === diff --git a/tests/qemu-iotests/249 b/tests/qemu-iotests/249 new file mode 100755 index 0000000000..e4650ecf6b --- /dev/null +++ b/tests/qemu-iotests/249 @@ -0,0 +1,115 @@ +#!/usr/bin/env bash +# +# Test that a backing image is put back in read-only mode after +# block-commit (both when it fails and when it succeeds). +# +# Copyright (C) 2019 Igalia, S.L. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# creator +owner=berto@igalia.com + +seq="$(basename $0)" +echo "QA output created by $seq" + +status=1 # failure is the default! + +_cleanup() +{ + _cleanup_test_img + rm -f "$TEST_IMG.base" + rm -f "$TEST_IMG.int" +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.qemu + +# Any format implementing BlockDriver.bdrv_change_backing_file +_supported_fmt qcow2 qed +_supported_proto file +_supported_os Linux + +IMG_SIZE=1M + +# Create the images: base <- int <- active +TEST_IMG="$TEST_IMG.base" _make_test_img $IMG_SIZE | _filter_imgfmt +TEST_IMG="$TEST_IMG.int" _make_test_img -b "$TEST_IMG.base" | _filter_imgfmt +_make_test_img -b "$TEST_IMG.int" | _filter_imgfmt + +# Launch QEMU with these two drives: +# none0: base (read-only) +# none1: base <- int <- active +_launch_qemu -drive if=none,file="${TEST_IMG}.base",node-name=base,read-only=on \ + -drive if=none,file="${TEST_IMG}",backing.node-name=int,backing.backing=base + +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'qmp_capabilities' }" \ + 'return' + +echo +echo '=== Send a write command to a drive opened in read-only mode (1)' +echo +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'human-monitor-command', + 'arguments': {'command-line': 'qemu-io none0 \"aio_write 0 2k\"'}}" \ + 'return' + +echo +echo '=== Run block-commit on base using an invalid filter node name' +echo +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'block-commit', + 'arguments': {'job-id': 'job0', 'device': 'none1', 'top-node': 'int', + 'filter-node-name': '1234'}}" \ + 'error' + +echo +echo '=== Send a write command to a drive opened in read-only mode (2)' +echo +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'human-monitor-command', + 'arguments': {'command-line': 'qemu-io none0 \"aio_write 0 2k\"'}}" \ + 'return' + +echo +echo '=== Run block-commit on base using the default filter node name' +echo +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'block-commit', + 'arguments': {'job-id': 'job0', 'device': 'none1', 'top-node': 'int'}}" \ + 'return' + +# Wait for block-commit to finish +_send_qemu_cmd $QEMU_HANDLE '' \ + '"status": "null"' + +echo +echo '=== Send a write command to a drive opened in read-only mode (3)' +echo +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'human-monitor-command', + 'arguments': {'command-line': 'qemu-io none0 \"aio_write 0 2k\"'}}" \ + 'return' + +_cleanup_qemu + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/249.out b/tests/qemu-iotests/249.out new file mode 100644 index 0000000000..1c93164e84 --- /dev/null +++ b/tests/qemu-iotests/249.out @@ -0,0 +1,35 @@ +QA output created by 249 +Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=1048576 +Formatting 'TEST_DIR/t.IMGFMT.int', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.IMGFMT.base +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.IMGFMT.int +{"return": {}} + +=== Send a write command to a drive opened in read-only mode (1) + +{"return": "Block node is read-onlyrn"} + +=== Run block-commit on base using an invalid filter node name + +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} +{"error": {"class": "GenericError", "desc": "Invalid node name"}} + +=== Send a write command to a drive opened in read-only mode (2) + +{"return": "Block node is read-onlyrn"} + +=== Run block-commit on base using the default filter node name + +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 1048576, "offset": 1048576, "speed": 0, "type": "commit"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} + +=== Send a write command to a drive opened in read-only mode (3) + +{"return": "Block node is read-onlyrn"} +*** done diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index bae7718380..7ac9a5ea4a 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -248,3 +248,4 @@ 246 rw auto quick 247 rw auto quick 248 rw auto quick +249 rw auto quick diff --git a/util/cutils.c b/util/cutils.c index e098debdc0..d682c90901 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -825,7 +825,7 @@ const char *qemu_ether_ntoa(const MACAddr *mac) char *size_to_str(uint64_t val) { static const char *suffixes[] = { "", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei" }; - unsigned long div; + uint64_t div; int i; /* |