diff options
Diffstat (limited to 'src/guestfs.c')
-rw-r--r-- | src/guestfs.c | 23 |
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 */ +} |