aboutsummaryrefslogtreecommitdiff
path: root/blockdev.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2024-05-13 16:16:58 +0200
committerMarkus Armbruster <armbru@redhat.com>2024-05-27 12:42:01 +0200
commit540d91b40c390faa565e613a85bc0950ca7e0775 (patch)
tree75dea560b2beaf1098d286fcd405cfff42146a4c /blockdev.c
parent60b54b67c63d8f076152e0f7dccf39854dfc6a77 (diff)
downloadqemu-540d91b40c390faa565e613a85bc0950ca7e0775.zip
qemu-540d91b40c390faa565e613a85bc0950ca7e0775.tar.gz
qemu-540d91b40c390faa565e613a85bc0950ca7e0775.tar.bz2
block: Improve error message when external snapshot can't flush
external_snapshot_action() reports bdrv_flush() failure to its caller as An IO error has occurred The errno code returned by bdrv_flush() is lost. Improve this to Write to node '<device or node name>' failed: <description of errno> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-ID: <20240513141703.549874-2-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'blockdev.c')
-rw-r--r--blockdev.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/blockdev.c b/blockdev.c
index 08eccc9..528db34 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1406,8 +1406,10 @@ static void external_snapshot_action(TransactionAction *action,
}
if (!bdrv_is_read_only(state->old_bs)) {
- if (bdrv_flush(state->old_bs)) {
- error_setg(errp, QERR_IO_ERROR);
+ ret = bdrv_flush(state->old_bs);
+ if (ret < 0) {
+ error_setg_errno(errp, -ret, "Write to node '%s' failed",
+ bdrv_get_device_or_node_name(state->old_bs));
return;
}
}