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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list