render / rpms / libvirt

Forked from rpms/libvirt 10 months ago
Clone
Blob Blame History Raw
From c04f1a5c282ffd48a5df4612dc12b2ca44a3ae26 Mon Sep 17 00:00:00 2001
Message-Id: <c04f1a5c282ffd48a5df4612dc12b2ca44a3ae26@dist-git>
From: Eric Blake <eblake@redhat.com>
Date: Wed, 26 Feb 2014 14:55:11 +0100
Subject: [PATCH] storage: fix omitted slash in gluster volume URI

https://bugzilla.redhat.com/show_bug.cgi?id=1032370

When doing 'virsh vol-dumpxml' on a gluster pool's volume, the
resulting URI incorrectly omitted a slash between hostname and
path:  gluster://192.168.122.206rhsvol1/fedora-19.img

This is fallout from me rebasing earlier versions of my patch
that ended up as commit efee1af; I had originally played with
always requiring the gluster volume to have a leading slash,
but it was easier to use the gluster API if the gluster volume
name was guaranteed to have no slash.  While I got the URI of
the pool correct, I forgot to fix the URI of a libvirt volume.

* src/storage/storage_backend_gluster.c
(virStorageBackendGlusterRefreshVol): Use correct starting point
since uri construction requires leading slash.

Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit 6cd60b687acd04ea1538690b7d80f2809e0e29d4)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/storage/storage_backend_gluster.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/storage/storage_backend_gluster.c b/src/storage/storage_backend_gluster.c
index 1be9034..622526b 100644
--- a/src/storage/storage_backend_gluster.c
+++ b/src/storage/storage_backend_gluster.c
@@ -227,7 +227,10 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state,
         goto cleanup;
 
     tmp = state->uri->path;
-    state->uri->path = vol->key;
+    if (virAsprintf(&vol->key, "%s%s", state->uri->path, name) < 0) {
+        state->uri->path = tmp;
+        goto cleanup;
+    }
     if (!(vol->target.path = virURIFormat(state->uri))) {
         state->uri->path = tmp;
         goto cleanup;
-- 
1.9.0