virStorageBackendCreateRaw: createRawFile already reported the
exact error.
Before the fix:
error: Failed to create vol vol-create.img
error: cannot create path '/var/lib/libvirt/images/vol-create.img': Unknown error
18446744073709551597
After the fix:
error: Failed to create vol vol-create.img
error: cannot fill file '/var/lib/libvirt/images/vol-create.img': No space left on
device
---
src/storage/storage_backend.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index a6e66e1..cee2010 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -299,6 +299,7 @@ createRawFile(int fd, virStorageVolDefPtr vol,
{
int ret = 0;
unsigned long long remain;
+ off_t cur_pos = 0;
/* Seek to the final size, so the capacity is available upfront
* for progress reporting */
@@ -310,7 +311,12 @@ createRawFile(int fd, virStorageVolDefPtr vol,
goto cleanup;
}
+ cur_pos = lseek(fd, 0, SEEK_CUR);
+
+ VIR_WARN("cur_pos = %jd", cur_pos);
+
remain = vol->allocation;
+ VIR_WARN("remain = %llu", remain);
if (inputvol) {
ret = virStorageBackendCopyToFD(vol, inputvol, fd, &remain, 1);
@@ -399,12 +405,9 @@ virStorageBackendCreateRaw(virConnectPtr conn ATTRIBUTE_UNUSED,
goto cleanup;
}
- if ((ret = createRawFile(fd, vol, inputvol)) < 0) {
- virReportSystemError(-fd,
- _("cannot create path '%s'"),
- vol->target.path);
+ if ((ret = createRawFile(fd, vol, inputvol)) < 0)
+ /* createRawFile already reported the exact error. */
ret = -1;
- }
cleanup:
VIR_FORCE_CLOSE(fd);
--
1.7.4