summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-09-19 10:05:40 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-09-19 10:05:40 +0000
commit768876a1861fb81696ae5455dca5685b77eddf58 (patch)
tree4205dc1614770e0ea0dd4764f6b8f72d3e80abf5
parent1dfde4aeaf2dabdf2fa6a141986912de79ab3043 (diff)
downloaddrakx-768876a1861fb81696ae5455dca5685b77eddf58.tar
drakx-768876a1861fb81696ae5455dca5685b77eddf58.tar.gz
drakx-768876a1861fb81696ae5455dca5685b77eddf58.tar.bz2
drakx-768876a1861fb81696ae5455dca5685b77eddf58.tar.xz
drakx-768876a1861fb81696ae5455dca5685b77eddf58.zip
fs::proc_partitions::compare is no good for dmraid, but we need to check if we
agree with the kernel, otherwise an uncatched error will occur (bugzilla #18655)
-rw-r--r--perl-install/fsedit.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/perl-install/fsedit.pm b/perl-install/fsedit.pm
index 1df2f39c2..cd9b72f76 100644
--- a/perl-install/fsedit.pm
+++ b/perl-install/fsedit.pm
@@ -189,8 +189,15 @@ sub get_hds {
partition_table::read($hd);
if (listlength(partition_table::get_normal_parts($hd)) == 0) {
$handled = 1 if $handle_die_and_cdie->();
- } else {
- fs::proc_partitions::compare($hd) if !fs::type::is_dmraid($hd) && $::isInstall && !detect_devices::is_xbox();
+ } elsif ($::isInstall) {
+ if (fs::type::is_dmraid($hd)) {
+ if (my $p = find { ! -e "/dev/$_->{device}" } partition_table::get_normal_parts($hd)) {
+ #- dmraid should have created the device, so it means we don't agree
+ die sprintf(q(bad dmraid (missing partition %s), you may try rebooting install with option "nodmraid"), $p->{device});
+ }
+ } else {
+ fs::proc_partitions::compare($hd) if !detect_devices::is_xbox();
+ }
}
} sub {
my $err = $@;