summaryrefslogtreecommitdiffstats
path: root/perl
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-10-01 16:06:17 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-10-01 17:06:46 +0100
commitbf6ea125577dccdb18cab635eda1fb79cd98e0d5 (patch)
tree7cc973ea3efa162a779d27f382eefe6e56cc9367 /perl
parent5d01670e31ef3259fb1fc84a83ab27aec8fdac0b (diff)
downloadlibguestfs-bf6ea125577dccdb18cab635eda1fb79cd98e0d5.tar.gz
libguestfs-bf6ea125577dccdb18cab635eda1fb79cd98e0d5.tar.xz
libguestfs-bf6ea125577dccdb18cab635eda1fb79cd98e0d5.zip
inspector: Canonicalize device names (fix RHBZ#526717).
Make filesystem device names canonical, so they are /dev/sd* instead of /dev/vd*.
Diffstat (limited to 'perl')
-rw-r--r--perl/lib/Sys/Guestfs/Lib.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/perl/lib/Sys/Guestfs/Lib.pm b/perl/lib/Sys/Guestfs/Lib.pm
index a9868e2a..8ea2c1bf 100644
--- a/perl/lib/Sys/Guestfs/Lib.pm
+++ b/perl/lib/Sys/Guestfs/Lib.pm
@@ -569,13 +569,23 @@ C<use_windows_registry> flag are explained below.
=cut
+# Turn /dev/vd* and /dev/hd* into canonical device names
+# (see BLOCK DEVICE NAMING in guestfs(3)).
+
+sub _canonical_dev ($)
+{
+ my ($dev) = @_;
+ return "/dev/sd$1" if $dev =~ m{^/dev/[vh]d(\w+)};
+ return $dev;
+}
+
sub inspect_all_partitions
{
local $_;
my $g = shift;
my $parts = shift;
my @parts = @$parts;
- return map { $_ => inspect_partition ($g, $_, @_) } @parts;
+ return map { _canonical_dev ($_) => inspect_partition ($g, $_, @_) } @parts;
}
=head2 inspect_partition