qemu-img: Report bdrv_block_status failures
commit2058c2ad261de7f58fae01d63d3d0efa484caf2a
authorEric Blake <eblake@redhat.com>
Sat, 23 Mar 2019 21:26:38 +0000 (23 16:26 -0500)
committerEric Blake <eblake@redhat.com>
Sat, 30 Mar 2019 15:06:07 +0000 (30 10:06 -0500)
treeacea81aa7eb016903737c190714bf95db3acb233
parent230ce19814ecc6bff8edac3b5b86e7c82f422c6c
qemu-img: Report bdrv_block_status failures

If bdrv_block_status_above() fails, we are aborting the convert
process but failing to print an error message.  Broken in commit
690c7301 (v2.4) when rewriting convert's logic.

Discovered when teaching nbdkit to support NBD_CMD_BLOCK_STATUS, and
accidentally violating the protocol by returning more than one extent
in spite of qemu asking for NBD_CMD_FLAG_REQ_ONE.  The qemu NBD code
should probably handle the server's non-compliance more gracefully
than failing with EINVAL, but qemu-img shouldn't be silently
squelching any block status failures. It doesn't help that qemu 3.1
masks the qemu-img bug with extra noise that the nbd code is dumping
to stderr (that noise was cleaned up in d8b4bad8).

Reported-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190323212639.579-2-eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
qemu-img.c