This RFC adds an Error ** parameter to bdrv_open, bdrv_file_open, bdrv_create and the respective functions provided by a block driver.
This results in more specific error information than just -errno provided to the user when opening or creating images (disregarding the fact that block drivers often already use error_report, which is generally changed to error_setg through this patch). The last patch in this series changes the qcow2 block driver to set an example of usage in a block driver. Note that several I/O tests break by applying this RFC since they expect different error messages (generally, previously, an error message on image opening/creation consisted of two lines; the first of which would be generated by the driver through error_report, the second by the block layer itself through strerror(-ret); this patch is designed to merge these two lines into a single one). This applies to the tests 49, 51, 54 and 60. Max Reitz (3): bdrv: Use "Error" for opening images block: Error parameter for opening functions qcow2: Use Error parameter block.c | 164 ++++++++++++++++++++++++++++++---------------- block/blkdebug.c | 5 +- block/blkverify.c | 7 +- block/bochs.c | 3 +- block/cloop.c | 3 +- block/cow.c | 10 +-- block/dmg.c | 3 +- block/mirror.c | 5 +- block/nbd.c | 3 +- block/parallels.c | 3 +- block/qcow.c | 10 +-- block/qcow2.c | 143 ++++++++++++++++++++++++++-------------- block/qed.c | 13 ++-- block/raw-posix.c | 18 +++-- block/raw_bsd.c | 8 ++- block/sheepdog.c | 10 +-- block/snapshot.c | 2 +- block/vdi.c | 6 +- block/vhdx.c | 3 +- block/vmdk.c | 11 ++-- block/vpc.c | 6 +- block/vvfat.c | 7 +- blockdev.c | 30 ++++----- include/block/block.h | 11 ++-- include/block/block_int.h | 9 ++- qemu-img.c | 39 +++++------ qemu-io.c | 14 ++-- qemu-nbd.c | 6 +- 28 files changed, 343 insertions(+), 209 deletions(-) -- 1.8.3.1