[libvirt] [PATCH] fix a bug of sheepdog storage driver

Osier Yang jyang at redhat.com
Fri Feb 8 07:26:02 UTC 2013


On 2013年02月08日 14:48, harryxiyou at gmail.com wrote:
> Don't try to refresh Sheepdog volume if creating volume fails.
>
> Signed-off-by: Harry Wei<harryxiyou at gmail.com>
>
> ---
>   src/storage/storage_backend_sheepdog.c |   10 +++++++---
>   1 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c
> index cd18f33..218284d 100644
> --- a/src/storage/storage_backend_sheepdog.c
> +++ b/src/storage/storage_backend_sheepdog.c
> @@ -156,7 +156,7 @@ virStorageBackendSheepdogCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
>                                      virStorageVolDefPtr vol)
>   {
>
> -    int ret;
> +    int ret = -1;
>
>       if (vol->target.encryption != NULL) {
>           virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> @@ -167,10 +167,14 @@ virStorageBackendSheepdogCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
>       virCommandPtr cmd = virCommandNewArgList(COLLIE, "vdi", "create", vol->name, NULL);
>       virCommandAddArgFormat(cmd, "%llu", vol->capacity);
>       virStorageBackendSheepdogAddHostArg(cmd, pool);
> -    ret = virCommandRun(cmd, NULL);
> +    if (virCommandRun(cmd, NULL)<  0)
> +        goto cleanup;
>
> -    virStorageBackendSheepdogRefreshVol(conn, pool, vol);
> +    if (virStorageBackendSheepdogRefreshVol(conn, pool, vol)<  0)
> +        goto cleanup;
>
> +    ret = 0;
> +cleanup:
>       virCommandFree(cmd);
>       return ret;
>   }

ACK.




More information about the libvir-list mailing list