提交 d1f5dfc4 编写于 作者: J John Ferlan

storage: Alter logic when both BLKID and PARTED unavailable

If neither BLKID or PARTED is available and we're not writing, then
just return 0 which allows the underlying storage pool to generate
a failure. If both are unavailable and we're writing, then generate
a more generic error message.
上级 d18be365
...@@ -2842,9 +2842,6 @@ virStorageBackendBLKIDFindEmpty(const char *device ATTRIBUTE_UNUSED, ...@@ -2842,9 +2842,6 @@ virStorageBackendBLKIDFindEmpty(const char *device ATTRIBUTE_UNUSED,
const char *format ATTRIBUTE_UNUSED, const char *format ATTRIBUTE_UNUSED,
bool writelabel ATTRIBUTE_UNUSED) bool writelabel ATTRIBUTE_UNUSED)
{ {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("probing for filesystems is unsupported "
"by this build"));
return -2; return -2;
} }
...@@ -2868,11 +2865,10 @@ virStorageBackendPARTEDValidLabel(const char *device ATTRIBUTE_UNUSED, ...@@ -2868,11 +2865,10 @@ virStorageBackendPARTEDValidLabel(const char *device ATTRIBUTE_UNUSED,
const char *format ATTRIBUTE_UNUSED, const char *format ATTRIBUTE_UNUSED,
bool writelabel ATTRIBUTE_UNUSED) bool writelabel ATTRIBUTE_UNUSED)
{ {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", return -2;
_("PARTED is unsupported by this build"));
return -1;
} }
#endif /* #if WITH_STORAGE_DISK */ #endif /* #if WITH_STORAGE_DISK */
...@@ -2885,7 +2881,9 @@ virStorageBackendPARTEDValidLabel(const char *device ATTRIBUTE_UNUSED, ...@@ -2885,7 +2881,9 @@ virStorageBackendPARTEDValidLabel(const char *device ATTRIBUTE_UNUSED,
* BLKID API if available. * BLKID API if available.
* *
* Returns true if the probe deems the device has nothing valid on it * Returns true if the probe deems the device has nothing valid on it
* and returns false if the probe finds something * or when we cannot check and we're not writing the label.
*
* Returns false if the probe finds something
*/ */
bool bool
virStorageBackendDeviceIsEmpty(const char *devpath, virStorageBackendDeviceIsEmpty(const char *devpath,
...@@ -2898,5 +2896,15 @@ virStorageBackendDeviceIsEmpty(const char *devpath, ...@@ -2898,5 +2896,15 @@ virStorageBackendDeviceIsEmpty(const char *devpath,
writelabel)) == -2) writelabel)) == -2)
ret = virStorageBackendPARTEDValidLabel(devpath, format, writelabel); ret = virStorageBackendPARTEDValidLabel(devpath, format, writelabel);
if (ret == -2 && !writelabel)
ret = 0;
if (ret == -2) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("Unable to probe '%s' for existing data, "
"forced overwrite is necessary"),
devpath);
}
return ret == 0; return ret == 0;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册