diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-06-13 20:36:40 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-06-13 23:07:26 +0100 |
commit | 46ed232dc2ff2f7dff91cd93a13d7ce6f2cec504 (patch) | |
tree | 7ac4657b5067f50597aa54e2ee4d74d2db6c3054 /src/guestfs.c | |
parent | 998ebc333dbfe40c5953e36fb42f9610727a7532 (diff) | |
download | libguestfs-46ed232dc2ff2f7dff91cd93a13d7ce6f2cec504.tar.gz libguestfs-46ed232dc2ff2f7dff91cd93a13d7ce6f2cec504.tar.xz libguestfs-46ed232dc2ff2f7dff91cd93a13d7ce6f2cec504.zip |
New API: guestfs_canonical_device_name.
This API makes device names canonical, eg. /dev/vda1 -> /dev/sda1.
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 */ +} |