于 2011年07月04日 16:08, Matthias Bolte 写道:
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.
Thanks, applied
Osier