inspector: Canonicalize device names (fix RHBZ#526717).
authorRichard Jones <rjones@trick.home.annexia.org>
Thu, 1 Oct 2009 15:06:17 +0000 (16:06 +0100)
committerRichard Jones <rjones@trick.home.annexia.org>
Thu, 1 Oct 2009 16:06:46 +0000 (17:06 +0100)
Make filesystem device names canonical, so they are /dev/sd*
instead of /dev/vd*.

perl/lib/Sys/Guestfs/Lib.pm

index a9868e2..8ea2c1b 100644 (file)
@@ -569,13 +569,23 @@ C<use_windows_registry> flag are explained below.
 
 =cut
 
 
 =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;
 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
 }
 
 =head2 inspect_partition