File libvirt-virsh-fix-change-media-bug-on-disk-block-type.patch of Package libvirt

From 9bdd246eef514ee133134c6ec08365aaf97fc747 Mon Sep 17 00:00:00 2001
Message-Id: <9bdd246eef514ee133134c6ec08365aaf97fc747.1376483446.git.jdenemar@redhat.com>
From: Guannan Ren <gren@redhat.com>
Date: Tue, 23 Jul 2013 15:03:09 +0800
Subject: [PATCH] virsh: fix change-media bug on disk block type

Resolves:https://bugzilla.redhat.com/show_bug.cgi?id=923053
(cherry picked from commit 7729a16814d5bf3aebd248c9af00296ae2773818)

When cdrom is block type, the virsh change-media failed to insert
source info because virsh uses "<source block='/dev/sdb'/>" while
the correct name of the attribute for block disks is "dev".
---
 tools/virsh-domain.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index f94f609..8eb8d12 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -8005,8 +8005,10 @@ vshPrepareDiskXML(xmlNodePtr disk_node,
 
             if (source) {
                 new_node = xmlNewNode(NULL, BAD_CAST "source");
-                xmlNewProp(new_node, (const xmlChar *)disk_type,
-                           (const xmlChar *)source);
+                if (STREQ(disk_type, "block"))
+                    xmlNewProp(new_node, BAD_CAST "dev", BAD_CAST source);
+                else
+                    xmlNewProp(new_node, BAD_CAST disk_type, BAD_CAST source);
                 xmlAddChild(disk_node, new_node);
             } else if (type == VSH_PREPARE_DISK_XML_INSERT) {
                 vshError(NULL, _("No source is specified for inserting media"));
-- 
1.8.3.2

openSUSE Build Service is sponsored by