vhdx: Fix "log that needs to be replayed" error message
commitbf89e87427fb99b994eb0dfb710bb4b45785f733
authorMarkus Armbruster <armbru@redhat.com>
Fri, 18 Dec 2015 15:35:23 +0000 (18 16:35 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Wed, 13 Jan 2016 14:16:18 +0000 (13 15:16 +0100)
tree0fbfceacbce595338ebe1a16056241f7d1f4c590
parentc3d2d68ad68d044417bbecaa0ebb0aa0dfb44b5f
vhdx: Fix "log that needs to be replayed" error message

The arguments of error_setg_errno() should yield a short error string
without newlines.

Here, we try to append additional help to the error message by
embedding newlines in the error string.  That's nice, but it's doesn't
play nicely with the errno part.  tests/qemu-iotests/070.out shows the
resulting mess:

    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, execute:
     qemu-img check -r all 'TEST_DIR/iotest-dirtylog-10G-4M.vhdx': Operation not permitted

Switch to error_setg() and error_append_hint().  Result:

    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'

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <1450452927-8346-21-git-send-email-armbru@redhat.com>
block/vhdx-log.c
tests/qemu-iotests/070.out