diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/guestfs.c | 23 | ||||
-rw-r--r-- | src/guestfs.pod | 2 |
2 files changed, 24 insertions, 1 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 */ +} diff --git a/src/guestfs.pod b/src/guestfs.pod index fd8b70ca..6959f50c 100644 --- a/src/guestfs.pod +++ b/src/guestfs.pod @@ -1158,7 +1158,7 @@ C</dev/hda2> transparently. Note that this I<only> applies to parameters. The L</guestfs_list_devices>, L</guestfs_list_partitions> and similar calls return the true names of the devices and partitions as known to the -appliance. +appliance, but see L</guestfs_canonical_device_name>. =head3 ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION |