summaryrefslogtreecommitdiffstats
path: root/src/guestfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/guestfs.c')
-rw-r--r--src/guestfs.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/guestfs.c b/src/guestfs.c
index 561fab4f..32bcbeff 100644
--- a/src/guestfs.c
+++ b/src/guestfs.c
@@ -996,3 +996,26 @@ guestfs___free_drives (struct drive **drives)
i = next;
}
}
+
+char *
+guestfs__canonical_device_name (guestfs_h *g, const char *device)
+{
+ char *ret;
+
+ if (STRPREFIX (device, "/dev/hd") ||
+ STRPREFIX (device, "/dev/vd")) {
+ ret = safe_strdup (g, device);
+ ret[5] = 's';
+ }
+ else if (STRPREFIX (device, "/dev/mapper/") ||
+ STRPREFIX (device, "/dev/dm-")) {
+ /* XXX hide errors */
+ ret = guestfs_lvm_canonical_lv_name (g, device);
+ if (ret == NULL)
+ ret = safe_strdup (g, device);
+ }
+ else
+ ret = safe_strdup (g, device);
+
+ return ret; /* caller frees */
+}