* possible seclabels.
*/
static void
-virDomainSourceDefFormatSeclabel(virBufferPtr buf,
- size_t nseclabels,
- virSecurityDeviceLabelDefPtr *seclabels,
- unsigned int flags)
+virDomainDiskSourceDefFormatSeclabel(virBufferPtr buf,
+ size_t nseclabels,
+ virSecurityDeviceLabelDefPtr *seclabels,
+ unsigned int flags,
+ bool skipSeclables)
{
size_t n;
- if (nseclabels) {
+ if (nseclabels && !skipSeclables) {
virBufferAddLit(buf, ">\n");
virBufferAdjustIndent(buf, 2);
for (n = 0; n < nseclabels; n++)
}
}
-int
-virDomainDiskSourceFormat(virBufferPtr buf,
- virStorageSourcePtr src,
- int policy,
- unsigned int flags)
+static void
+virDomainSourceDefFormatSeclabel(virBufferPtr buf,
+ size_t nseclabels,
+ virSecurityDeviceLabelDefPtr *seclabels,
+ unsigned int flags)
+{
+ virDomainDiskSourceDefFormatSeclabel(buf, nseclabels, seclabels, flags, false);
+}
+
+static int
+virDomainDiskSourceFormatInternal(virBufferPtr buf,
+ virStorageSourcePtr src,
+ int policy,
+ unsigned int flags,
+ bool skipSeclabels)
{
size_t n;
char *path = NULL;
virBufferEscapeString(buf, " file='%s'", src->path);
virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);
- virDomainSourceDefFormatSeclabel(buf, src->nseclabels,
- src->seclabels, flags);
+ virDomainDiskSourceDefFormatSeclabel(buf, src->nseclabels,
+ src->seclabels, flags,
+ skipSeclabels);
break;
case VIR_STORAGE_TYPE_BLOCK:
virBufferEscapeString(buf, " dev='%s'", src->path);
virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);
- virDomainSourceDefFormatSeclabel(buf, src->nseclabels,
- src->seclabels, flags);
+ virDomainDiskSourceDefFormatSeclabel(buf, src->nseclabels,
+ src->seclabels, flags,
+ skipSeclabels);
break;
case VIR_STORAGE_TYPE_DIR:
}
virBufferEscapeString(buf, " startupPolicy='%s'", startupPolicy);
- virDomainSourceDefFormatSeclabel(buf, src->nseclabels,
- src->seclabels, flags);
+ virDomainDiskSourceDefFormatSeclabel(buf, src->nseclabels,
+ src->seclabels, flags,
+ skipSeclabels);
break;
case VIR_STORAGE_TYPE_NONE:
}
+int
+virDomainDiskSourceFormat(virBufferPtr buf,
+ virStorageSourcePtr src,
+ int policy,
+ unsigned int flags)
+{
+ return virDomainDiskSourceFormatInternal(buf, src, policy, flags, false);
+}
+
+
static int
virDomainDiskBackingStoreFormat(virBufferPtr buf,
virStorageSourcePtr backingStore,
virBufferAdjustIndent(buf, 2);
virBufferAsprintf(buf, "<format type='%s'/>\n", format);
- if (virDomainDiskSourceFormat(buf, backingStore, 0, 0) < 0 ||
+ /* We currently don't output seclabels for backing chain element */
+ if (virDomainDiskSourceFormatInternal(buf, backingStore, 0, 0, true) < 0 ||
virDomainDiskBackingStoreFormat(buf,
backingStore->backingStore,
backingStore->backingStoreRaw,