On Sun, 02/09 10:48, Paolo Bonzini wrote: > Now that we can return the "right" errors, use the Error** parameter > to pass them back instead of just printing them. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > block/vmdk.c | 11 ++++++----- > tests/qemu-iotests/059.out | 6 ++---- > 2 files changed, 8 insertions(+), 9 deletions(-) > > diff --git a/block/vmdk.c b/block/vmdk.c > index 750e632..f148164 100644 > --- a/block/vmdk.c > +++ b/block/vmdk.c > @@ -571,6 +571,7 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, > error_setg_errno(errp, -ret, > "Could not read header from file '%s'", > file->filename); > + return -EINVAL; > } > if (header.capacity == 0) { > uint64_t desc_offset = le64_to_cpu(header.desc_offset); > @@ -640,8 +641,8 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, > char buf[64]; > snprintf(buf, sizeof(buf), "VMDK version %d", > le32_to_cpu(header.version)); > - qerror_report(QERR_UNKNOWN_BLOCK_FORMAT_FEATURE, > - bs->device_name, "vmdk", buf); > + error_set(errp, QERR_UNKNOWN_BLOCK_FORMAT_FEATURE, > + bs->device_name, "vmdk", buf); > return -ENOTSUP; > } else if (le32_to_cpu(header.version) == 3 && (flags & BDRV_O_RDWR)) { > /* VMware KB 2064959 explains that version 3 added support for > @@ -653,7 +654,7 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, > } > > if (le32_to_cpu(header.num_gtes_per_gt) > 512) { > - error_report("L2 table size too big"); > + error_setg(errp, "L2 table size too big"); > return -EINVAL; > } > > @@ -669,8 +670,8 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, > } > if (bdrv_getlength(file) < > le64_to_cpu(header.grain_offset) * BDRV_SECTOR_SIZE) { > - error_report("File truncated, expecting at least %lld bytes", > - le64_to_cpu(header.grain_offset) * BDRV_SECTOR_SIZE); > + error_setg(errp, "File truncated, expecting at least %lld bytes", > + le64_to_cpu(header.grain_offset) * BDRV_SECTOR_SIZE); > return -EINVAL; > } > > diff --git a/tests/qemu-iotests/059.out b/tests/qemu-iotests/059.out > index 4600670..3371c86 100644 > --- a/tests/qemu-iotests/059.out > +++ b/tests/qemu-iotests/059.out > @@ -7,8 +7,7 @@ no file open, try 'help open' > > === Testing too big L2 table size === > Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 > -L2 table size too big > -qemu-io: can't open device TEST_DIR/t.vmdk: Could not open > 'TEST_DIR/t.vmdk': Invalid argument > +qemu-io: can't open device TEST_DIR/t.vmdk: L2 table size too big > no file open, try 'help open' > > === Testing too big L1 table size === > @@ -2045,8 +2044,7 @@ RW 12582912 VMFS "dummy.IMGFMT" 1 > > === Testing truncated sparse === > Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=107374182400 > -qemu-img: File truncated, expecting at least 13172736 bytes > -qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Could not open > 'TEST_DIR/t.IMGFMT': Invalid argument > +qemu-img: Could not open 'TEST_DIR/t.IMGFMT': File truncated, expecting at > least 13172736 bytes > > === Testing version 3 === > image: TEST_DIR/iotest-version3.IMGFMT > -- > 1.8.5.3 > > >
Reviewed-by: Fam Zheng <f...@redhat.com>