[libvirt] [PATCH] storage: Do not override the exact error of createRawFile

Matthias Bolte matthias.bolte at googlemail.com
Mon Jul 4 08:08:50 UTC 2011


2011/7/4 Osier Yang <jyang at 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




More information about the libvir-list mailing list