diff options
Diffstat (limited to 'perl-install/fs/wild_device.pm')
| -rw-r--r-- | perl-install/fs/wild_device.pm | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/perl-install/fs/wild_device.pm b/perl-install/fs/wild_device.pm index 4e2a3a849..ff5a32253 100644 --- a/perl-install/fs/wild_device.pm +++ b/perl-install/fs/wild_device.pm @@ -1,8 +1,8 @@ -package fs::wild_device; # $Id$ +package fs::wild_device; use diagnostics; use strict; - +use devices; use common; @@ -11,19 +11,19 @@ sub analyze { if ($dev =~ m!^/u?dev/(.*)!) { 'dev', $dev; - } elsif ($dev !~ m!^/! && (-e "/dev/$dev" || -e "$::prefix/dev/$dev")) { + } elsif ($dev !~ m!^/! && (-e "/dev/$dev" || -e "/dev/$dev")) { 'dev', "/dev/$dev"; } elsif ($dev =~ /^LABEL=(.*)/) { 'label', $1; } elsif ($dev =~ /^UUID=(.*)/) { 'uuid', $1; - } elsif ($dev eq 'none' || $dev eq 'rootfs') { + } elsif (member($dev, qw(none rootfs))) { 'virtual'; - } elsif ($dev =~ m!^(\S+):/\w!) { + } elsif ($dev =~ m!^(\S+):/(\w|$)!) { 'nfs'; } elsif ($dev =~ m!^//\w!) { 'smb'; - } elsif ($dev =~ m!^http://!) { + } elsif ($dev =~ m!^https?://!) { 'dav'; } } @@ -40,16 +40,16 @@ sub to_subpart { $part->{device_UUID} = $val; } elsif ($kind eq 'dev') { my %part = (faked_device => 0); - if (my $rdev = (stat "$::prefix$dev")[6]) { + if (my $rdev = (stat "$dev")[6]) { ($part{major}, $part{minor}) = unmakedev($rdev); } - my $symlink = readlink("$::prefix$dev"); + my $symlink = $dev !~ m!mapper/! ? readlink("$dev") : undef; $dev =~ s!/u?dev/!!; if ($symlink && $symlink !~ m!^/!) { my $keep = 1; - if ($symlink =~ m!/!) { + if ($symlink =~ m!/! || $dev =~ m!/!) { $symlink = MDK::Common::File::concat_symlink("/dev/" . dirname($dev), $symlink); $symlink =~ s!^/dev/!! or $keep = 0; } @@ -67,7 +67,7 @@ sub to_subpart { return \%part; } } else { - if ($dev =~ m!^/! && -f "$::prefix$dev") { + if ($dev =~ m!^/! && -f "$dev") { #- it must be a loopback file or directory to bind } else { log::l("part_from_wild_device_name: unknown device $dev"); |
