Previously callers were unable to distinguish a regular error (like an
I/O error) from the case where you call this API on something which is
valid but not a logical volume. Set errno to a known value in this
case.
---
daemon/lvm.c | 2 +-
generator/actions_core.ml | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/daemon/lvm.c b/daemon/lvm.c
index 039240866..841dc4b6b 100644
--- a/daemon/lvm.c
+++ b/daemon/lvm.c
@@ -757,7 +757,7 @@ do_lvm_canonical_lv_name (const char *device)
return NULL;
if (r == 0) {
- reply_with_error ("%s: not a logical volume", device);
+ reply_with_error_errno (EINVAL, "%s: not a logical volume", device);
return NULL;
}
diff --git a/generator/actions_core.ml b/generator/actions_core.ml
index 9d0c0fe76..806565b19 100644
--- a/generator/actions_core.ml
+++ b/generator/actions_core.ml
@@ -5994,7 +5994,8 @@ might find to the canonical name. For example,
F</dev/mapper/VG-LV>
is converted to F</dev/VG/LV>.
This command returns an error if the C<lvname> parameter does
-not refer to a logical volume.
+not refer to a logical volume. In this case errno will be
+set to C<EINVAL>.
See also C<guestfs_is_lv>, C<guestfs_canonical_device_name>." };
--
2.27.0