[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 20/20] vdi: say why an image is bad
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v2 20/20] vdi: say why an image is bad |
Date: |
Tue, 11 Feb 2014 18:03:53 +0100 |
Instead of just putting it in debugging output, we can now put the
value in an Error.
Signed-off-by: Paolo Bonzini <address@hidden>
---
block/vdi.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/block/vdi.c b/block/vdi.c
index 68e152c..3859e49 100644
--- a/block/vdi.c
+++ b/block/vdi.c
@@ -399,39 +399,46 @@ static int vdi_open(BlockDriverState *bs, QDict *options,
int flags,
ret = -EINVAL;
goto fail;
} else if (header.version != VDI_VERSION_1_1) {
- logout("unsupported version %u.%u\n",
- header.version >> 16, header.version & 0xffff);
+ error_setg(errp, "unsupported VDI image (version %u.%u)",
+ header.version >> 16, header.version & 0xffff);
ret = -ENOTSUP;
goto fail;
} else if (header.offset_bmap % SECTOR_SIZE != 0) {
/* We only support block maps which start on a sector boundary. */
- logout("unsupported block map offset 0x%x B\n", header.offset_bmap);
+ error_setg(errp, "unsupported VDI image (unaligned block map offset
0x%x)",
+ header.offset_bmap);
ret = -ENOTSUP;
goto fail;
} else if (header.offset_data % SECTOR_SIZE != 0) {
/* We only support data blocks which start on a sector boundary. */
- logout("unsupported data offset 0x%x B\n", header.offset_data);
+ error_setg(errp, "unsupported VDI image (unaligned data offset 0x%x)",
+ header.offset_data);
ret = -ENOTSUP;
goto fail;
} else if (header.sector_size != SECTOR_SIZE) {
- logout("unsupported sector size %u B\n", header.sector_size);
+ error_setg(errp, "unsupported VDI image (sector size %u is not %u)",
+ header.sector_size, SECTOR_SIZE);
ret = -ENOTSUP;
goto fail;
} else if (header.block_size != 1 * MiB) {
- logout("unsupported block size %u B\n", header.block_size);
+ error_setg(errp, "unsupported VDI image (sector size %u is not %u)",
+ header.block_size, 1 * MiB);
ret = -ENOTSUP;
goto fail;
} else if (header.disk_size >
(uint64_t)header.blocks_in_image * header.block_size) {
- logout("unsupported disk size %" PRIu64 " B\n", header.disk_size);
+ error_setg(errp, "unsupported VDI image (disk size %" PRIu64 ", "
+ "image bitmap has room for %" PRIu64 ")",
+ header.disk_size,
+ (uint64_t)header.blocks_in_image * header.block_size);
ret = -ENOTSUP;
goto fail;
} else if (!uuid_is_null(header.uuid_link)) {
- logout("link uuid != 0, unsupported\n");
+ error_setg(errp, "unsupported VDI image (non-NULL link UUID)");
ret = -ENOTSUP;
goto fail;
} else if (!uuid_is_null(header.uuid_parent)) {
- logout("parent uuid != 0, unsupported\n");
+ error_setg(errp, "unsupported VDI image (non-NULL parent UUID)");
ret = -ENOTSUP;
goto fail;
}
--
1.8.5.3
- [Qemu-devel] [PATCH v2 11/20] qcow: correctly propagate errors, (continued)
- [Qemu-devel] [PATCH v2 11/20] qcow: correctly propagate errors, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 12/20] qed: correctly propagate errors, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 13/20] vhdx: correctly propagate errors, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 14/20] vvfat: correctly propagate errors, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 15/20] vmdk: extract vmdk_read_desc, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 16/20] vmdk: push vmdk_read_desc up to caller, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 17/20] vmdk: do not try opening a file as both image and descriptor, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 18/20] vmdk: correctly propagate errors, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 19/20] block: do not abuse EMEDIUMTYPE, Paolo Bonzini, 2014/02/11
- [Qemu-devel] [PATCH v2 20/20] vdi: say why an image is bad,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v2 05/20] iscsi: fix indentation, Paolo Bonzini, 2014/02/11
- Re: [Qemu-devel] [PATCH v2 00/20] Improve bdrv_open error messages, Stefan Hajnoczi, 2014/02/14