2011/7/4 Osier Yang <jyang(a)redhat.com>:
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 | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index a6e66e1..708d7b2 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -399,12 +399,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;
- }
You're also fixing the usage of the wrong value for the errno
parameter of virReportSystemError by removing that call. It should
have been -ret instead of -fd, that's why you see this large number in
the overwriting error that is the result of an overflow.
ACK.
--
Matthias Bolte
http://photron.blogspot.com