virStoragePoolDefFree(pooldef);
return ret;
}
+
+
+/**
+ * virDomainDiskGetDetectZeroesMode:
+ * @discard: disk/image sector discard setting
+ * @detect_zeroes: disk/image zero sector detection mode
+ *
+ * As a convenience syntax, if discards are ignored and zero detection is set
+ * to 'unmap', then simply behave like zero detection is set to 'on'. But
+ * don't change it in the XML for easier adjustments. This behaviour is
+ * documented.
+ */
+int
+virDomainDiskGetDetectZeroesMode(virDomainDiskDiscard discard,
+ virDomainDiskDetectZeroes detect_zeroes)
+{
+ if (discard != VIR_DOMAIN_DISK_DISCARD_UNMAP &&
+ detect_zeroes == VIR_DOMAIN_DISK_DETECT_ZEROES_UNMAP)
+ return VIR_DOMAIN_DISK_DETECT_ZEROES_ON;
+
+ return detect_zeroes;
+}
int virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def);
+int
+virDomainDiskGetDetectZeroesMode(virDomainDiskDiscard discard,
+ virDomainDiskDetectZeroes detect_zeroes);
#endif /* __DOMAIN_CONF_H */
virDomainDiskFindByBusAndDst;
virDomainDiskGeometryTransTypeFromString;
virDomainDiskGeometryTransTypeToString;
+virDomainDiskGetDetectZeroesMode;
virDomainDiskGetDriver;
virDomainDiskGetFormat;
virDomainDiskGetSource;
virQEMUCapsPtr qemuCaps)
{
virBuffer opt = VIR_BUFFER_INITIALIZER;
+ int detect_zeroes = virDomainDiskGetDetectZeroesMode(disk->discard,
+ disk->detect_zeroes);
if (qemuBuildDriveSourceStr(disk, qemuCaps, &opt) < 0)
goto error;
virDomainDiskDiscardTypeToString(disk->discard));
}
- if (disk->detect_zeroes) {
- int detect_zeroes = disk->detect_zeroes;
-
- /*
- * As a convenience syntax, if discards are ignored and
- * zero detection is set to 'unmap', then simply behave
- * like zero detection is set to 'on'. But don't change
- * it in the XML for easier adjustments. This behaviour
- * is documented.
- */
- if (disk->discard != VIR_DOMAIN_DISK_DISCARD_UNMAP &&
- detect_zeroes == VIR_DOMAIN_DISK_DETECT_ZEROES_UNMAP)
- detect_zeroes = VIR_DOMAIN_DISK_DETECT_ZEROES_ON;
-
+ if (detect_zeroes) {
virBufferAsprintf(&opt, ",detect-zeroes=%s",
virDomainDiskDetectZeroesTypeToString(detect_zeroes));
}