Most of the block drivers are not using the Error** argument to bdrv_open, and instead just printing errors to stderr. This series improves that, using Error** instead of abusing errno numbers too.
The only hurdle (caught by qemu-iotests, too) is VMDK, where we currently parse a file first as image, and second as a descriptor. This makes it hard to pick a good error message, because you do not know which attempt gave the most reasonable error message. For this reason patches 15-17 modify this approach and push up the detection of vmdk image file magic numbers. Apart from this, and from a segfault fixed by patch 7, the series consists of mostly trivial patches. Paolo Paolo Bonzini (20): nbd: produce a better error if neither host nor port is passed nbd: correctly propagate errors nbd: inline tcp_socket_incoming_spec into sole caller nbd: move socket wrappers to qemu-nbd iscsi: fix indentation iscsi: correctly propagate errors in iscsi_open gluster: default scheme to gluster:// and host to localhost. gluster: correctly propagate errors cow: correctly propagate errors curl: correctly propagate errors qcow: correctly propagate errors qed: correctly propagate errors vhdx: correctly propagate errors vvfat: correctly propagate errors vmdk: extract vmdk_read_desc vmdk: push vmdk_read_desc up to caller vmdk: do not try opening a file as both image and descriptor vmdk: correctly propagate errors block: do not abuse EMEDIUMTYPE vdi: say why an image is bad block/bochs.c | 3 +- block/cow.c | 15 ++--- block/curl.c | 13 ++--- block/gluster.c | 28 ++++----- block/iscsi.c | 141 +++++++++++++++++++++++---------------------- block/nbd.c | 43 +++++++------- block/parallels.c | 3 +- block/qcow.c | 19 +++--- block/qcow2.c | 2 +- block/qed.c | 19 +++--- block/vdi.c | 29 ++++++---- block/vhdx.c | 21 +++---- block/vmdk.c | 121 ++++++++++++++++++++++++-------------- block/vpc.c | 3 +- block/vvfat.c | 9 +-- include/block/nbd.h | 6 -- nbd.c | 66 --------------------- qemu-nbd.c | 52 +++++++++++++++++ tests/qemu-iotests/059.out | 6 +- 19 files changed, 302 insertions(+), 297 deletions(-) -- 1.8.5.3