aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2024-05-13 16:17:00 +0200
committerMarkus Armbruster <armbru@redhat.com>2024-05-27 12:42:29 +0200
commit29ad187c1c89fcf82d4e73e90bec9722d548efed (patch)
treefa0e3c9e85c5abb83b0fe0a55cb600f8de38915d /block
parent21c06f57808c7236cca68ccc7d8df845c22cd998 (diff)
downloadqemu-29ad187c1c89fcf82d4e73e90bec9722d548efed.zip
qemu-29ad187c1c89fcf82d4e73e90bec9722d548efed.tar.gz
qemu-29ad187c1c89fcf82d4e73e90bec9722d548efed.tar.bz2
block/vmdk: Improve error messages on extent write error
vmdk_init_extent() reports blk_co_pwrite() failure to its caller as An IO error has occurred The errno code returned by blk_co_pwrite() is lost. Improve this to failed to write VMDK <what>: <description of errno> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-ID: <20240513141703.549874-4-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'block')
-rw-r--r--block/vmdk.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/block/vmdk.c b/block/vmdk.c
index 3b82979..78f6433 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -28,7 +28,6 @@
#include "block/block_int.h"
#include "sysemu/block-backend.h"
#include "qapi/qmp/qdict.h"
-#include "qapi/qmp/qerror.h"
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qemu/option.h"
@@ -2278,12 +2277,12 @@ vmdk_init_extent(BlockBackend *blk, int64_t filesize, bool flat, bool compress,
/* write all the data */
ret = blk_co_pwrite(blk, 0, sizeof(magic), &magic, 0);
if (ret < 0) {
- error_setg(errp, QERR_IO_ERROR);
+ error_setg_errno(errp, -ret, "failed to write VMDK magic");
goto exit;
}
ret = blk_co_pwrite(blk, sizeof(magic), sizeof(header), &header, 0);
if (ret < 0) {
- error_setg(errp, QERR_IO_ERROR);
+ error_setg_errno(errp, -ret, "failed to write VMDK header");
goto exit;
}
@@ -2303,7 +2302,7 @@ vmdk_init_extent(BlockBackend *blk, int64_t filesize, bool flat, bool compress,
ret = blk_co_pwrite(blk, le64_to_cpu(header.rgd_offset) * BDRV_SECTOR_SIZE,
gd_buf_size, gd_buf, 0);
if (ret < 0) {
- error_setg(errp, QERR_IO_ERROR);
+ error_setg_errno(errp, -ret, "failed to write VMDK grain directory");
goto exit;
}
@@ -2315,7 +2314,8 @@ vmdk_init_extent(BlockBackend *blk, int64_t filesize, bool flat, bool compress,
ret = blk_co_pwrite(blk, le64_to_cpu(header.gd_offset) * BDRV_SECTOR_SIZE,
gd_buf_size, gd_buf, 0);
if (ret < 0) {
- error_setg(errp, QERR_IO_ERROR);
+ error_setg_errno(errp, -ret,
+ "failed to write VMDK backup grain directory");
}
ret = 0;