|
@@ -28,7 +28,6 @@
|
|
#include "block/block_int.h"
|
|
#include "block/block_int.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
-#include "qapi/qmp/qerror.h"
|
|
|
|
#include "qemu/error-report.h"
|
|
#include "qemu/error-report.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/option.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 */
|
|
/* write all the data */
|
|
ret = blk_co_pwrite(blk, 0, sizeof(magic), &magic, 0);
|
|
ret = blk_co_pwrite(blk, 0, sizeof(magic), &magic, 0);
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- error_setg(errp, QERR_IO_ERROR);
|
|
|
|
|
|
+ error_setg_errno(errp, -ret, "failed to write VMDK magic");
|
|
goto exit;
|
|
goto exit;
|
|
}
|
|
}
|
|
ret = blk_co_pwrite(blk, sizeof(magic), sizeof(header), &header, 0);
|
|
ret = blk_co_pwrite(blk, sizeof(magic), sizeof(header), &header, 0);
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- error_setg(errp, QERR_IO_ERROR);
|
|
|
|
|
|
+ error_setg_errno(errp, -ret, "failed to write VMDK header");
|
|
goto exit;
|
|
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,
|
|
ret = blk_co_pwrite(blk, le64_to_cpu(header.rgd_offset) * BDRV_SECTOR_SIZE,
|
|
gd_buf_size, gd_buf, 0);
|
|
gd_buf_size, gd_buf, 0);
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- error_setg(errp, QERR_IO_ERROR);
|
|
|
|
|
|
+ error_setg_errno(errp, -ret, "failed to write VMDK grain directory");
|
|
goto exit;
|
|
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,
|
|
ret = blk_co_pwrite(blk, le64_to_cpu(header.gd_offset) * BDRV_SECTOR_SIZE,
|
|
gd_buf_size, gd_buf, 0);
|
|
gd_buf_size, gd_buf, 0);
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
- error_setg(errp, QERR_IO_ERROR);
|
|
|
|
|
|
+ error_setg_errno(errp, -ret,
|
|
|
|
+ "failed to write VMDK backup grain directory");
|
|
}
|
|
}
|
|
|
|
|
|
ret = 0;
|
|
ret = 0;
|