[libvirt] [PATCH v3 5/5] storage: gluster: Use volume name as "<name>" field in the XML

John Ferlan jferlan at redhat.com
Wed Apr 5 11:03:39 UTC 2017



On 04/04/2017 08:20 AM, Peter Krempa wrote:
> For native gluster pools the <dir> field denotes a directory inside the
> pool. For the actual pool name the <name> field has to be used.
> ---
>  src/storage/storage_util.c                               | 16 ++++++++++++++--
>  tests/virstorageutildata/gluster-parse-basic-native.xml  |  3 ++-
>  .../virstorageutildata/gluster-parse-multivol-native.xml |  9 ++++++---
>  3 files changed, 22 insertions(+), 6 deletions(-)
> 
> diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
> index 1e44a2da4..7cc125a38 100644
> --- a/src/storage/storage_util.c
> +++ b/src/storage/storage_util.c
> @@ -2846,6 +2846,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host,
>      xmlXPathContextPtr ctxt = NULL;
>      xmlNodePtr *nodes = NULL;
>      virStoragePoolSource *src = NULL;
> +    char *volname;
>      size_t i;
>      int nnodes;
>      int ret = -1;
> @@ -2862,14 +2863,25 @@ virStorageUtilGlusterExtractPoolSources(const char *host,
>          if (!(src = virStoragePoolSourceListNewSource(list)))
>              goto cleanup;
> 
> -        if (!(src->dir = virXPathString("string(./name)", ctxt))) {
> +        if (!(volname = virXPathString("string(./name)", ctxt))) {
>              virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>                             _("failed to extract gluster volume name"));
>              goto cleanup;
>          }
> 
> -        if (pooltype == VIR_STORAGE_POOL_NETFS)
> +        if (pooltype == VIR_STORAGE_POOL_NETFS) {
>              src->format = VIR_STORAGE_POOL_NETFS_GLUSTERFS;
> +            src->dir = volname;
> +        } else if (pooltype == VIR_STORAGE_POOL_GLUSTER) {
> +            src->name = volname;
> +
> +            if (VIR_STRDUP(src->dir, "/") < 0)
> +                goto cleanup;
> +        } else {
> +            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                           _("unsupported gluster lookup"));
> +            goto cleanup;

Coverity gleefully tells me volname is leaked this morning...

John 	

> +        }
> 
>          if (VIR_ALLOC_N(src->hosts, 1) < 0)
>              goto cleanup;
[...]




More information about the libvir-list mailing list