disk->sgio == VIR_DOMAIN_DISK_SGIO_UNFILTERED))
goto cleanup;
- virReportError(VIR_ERR_OPERATION_INVALID,
- _("sgio of shared disk '%s' conflicts with other "
- "active domains"), disk->src);
+ if (disk->type == VIR_DOMAIN_DISK_TYPE_VOLUME) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("sgio of shared disk 'pool=%s' 'volume=%s' conflicts "
+ "with other active domains"),
+ disk->srcpool->pool,
+ disk->srcpool->volume);
+ } else {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("sgio of shared disk '%s' conflicts with other "
+ "active domains"), disk->src);
+ }
+
ret = -1;
cleanup:
/* "sgio" is only valid for block disk; cdrom
* and floopy disk can have empty source.
*/
- if (disk->type != VIR_DOMAIN_DISK_TYPE_BLOCK ||
+ if (!disk->src ||
disk->device != VIR_DOMAIN_DISK_DEVICE_LUN ||
- !disk->src)
+ (disk->type != VIR_DOMAIN_DISK_TYPE_BLOCK &&
+ !(disk->type == VIR_DOMAIN_DISK_TYPE_VOLUME &&
+ disk->srcpool &&
+ disk->srcpool->voltype == VIR_STORAGE_VOL_BLOCK)))
return 0;
sysfs_path = virGetUnprivSGIOSysfsPath(disk->src, NULL);