From 46ed232dc2ff2f7dff91cd93a13d7ce6f2cec504 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 13 Jun 2012 20:36:40 +0100 Subject: New API: guestfs_canonical_device_name. This API makes device names canonical, eg. /dev/vda1 -> /dev/sda1. --- src/guestfs.c | 23 +++++++++++++++++++++++ src/guestfs.pod | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'src') 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 transparently. Note that this I applies to parameters. The L, L and similar calls return the true names of the devices and partitions as known to the -appliance. +appliance, but see L. =head3 ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION -- cgit