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(a)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