[libvirt] [PATCH v2 1/2] conf: node_device: fix up SCSI target

Bjoern Walk bwalk at linux.vnet.ibm.com
Mon Mar 21 14:49:29 UTC 2016


When reading in an XML definition for a SCSI target device, the name
property of struct scsi_target refers to the @target element.

Let's fix this obvious typo and also extend the XML schema to provide
validation.

Signed-off-by: Bjoern Walk <bwalk at linux.vnet.ibm.com>
---
 docs/schemas/nodedev.rng    | 11 +++++++++++
 src/conf/node_device_conf.c |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng
index 949811c..d937513 100644
--- a/docs/schemas/nodedev.rng
+++ b/docs/schemas/nodedev.rng
@@ -40,6 +40,7 @@
         <ref name="capusbinterface"/>
         <ref name="capnet"/>
         <ref name="capscsihost"/>
+        <ref name="capscsitarget"/>
         <ref name="capscsi"/>
         <ref name="capstorage"/>
       </choice>
@@ -382,6 +383,16 @@
     </optional>
   </define>
 
+  <define name='capscsitarget'>
+    <attribute name='type'>
+      <value>scsi_target</value>
+    </attribute>
+
+    <element name='target'>
+      <text/>
+    </element>
+  </define>
+
   <define name='capscsi'>
     <attribute name='type'>
       <value>scsi</value>
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index 611045c..f74b34d 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -822,7 +822,7 @@ virNodeDevCapSCSITargetParseXML(xmlXPathContextPtr ctxt,
     orignode = ctxt->node;
     ctxt->node = node;
 
-    data->scsi_target.name = virXPathString("string(./name[1])", ctxt);
+    data->scsi_target.name = virXPathString("string(./target[1])", ctxt);
     if (!data->scsi_target.name) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("no target name supplied for '%s'"),
-- 
2.6.5




More information about the libvir-list mailing list