diff options
Diffstat (limited to 'perl-install/fs')
-rw-r--r-- | perl-install/fs/get.pm | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/perl-install/fs/get.pm b/perl-install/fs/get.pm index dca0a5aa9..5ea9071a8 100644 --- a/perl-install/fs/get.pm +++ b/perl-install/fs/get.pm @@ -71,7 +71,7 @@ sub hds_fstab_and_holes { sub device2part { my ($dev, $fstab) = @_; my $subpart = fs::subpart_from_wild_device_name($dev); - my $part = find { fsedit::is_same_hd($subpart, $_) } @$fstab; + my $part = find { is_same_hd($subpart, $_) } @$fstab; log::l("fs::get::device2part: unknown device <<$dev>>") if !$part; $part; } @@ -126,4 +126,18 @@ sub up_mount_point { } } +sub is_same_hd { + my ($hd1, $hd2) = @_; + if ($hd1->{major} && $hd2->{major}) { + $hd1->{major} == $hd2->{major} && $hd1->{minor} == $hd2->{minor}; + } elsif (my ($s1) = $hd1->{device} =~ m|https?://(.+?)/*$|) { + my ($s2) = $hd2->{device} =~ m|https?://(.+?)/*$|; + $s1 eq $s2; + } else { + $hd1->{devfs_device} && $hd2->{devfs_device} && $hd1->{devfs_device} eq $hd2->{devfs_device} + || $hd1->{device_LABEL} && $hd2->{device_LABEL} && $hd1->{device_LABEL} eq $hd2->{device_LABEL} + || $hd1->{device} && $hd2->{device} && $hd1->{device} eq $hd2->{device}; + } +} + 1; |