diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2005-09-19 10:05:40 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2005-09-19 10:05:40 +0000 |
commit | 768876a1861fb81696ae5455dca5685b77eddf58 (patch) | |
tree | 4205dc1614770e0ea0dd4764f6b8f72d3e80abf5 | |
parent | 1dfde4aeaf2dabdf2fa6a141986912de79ab3043 (diff) | |
download | drakx-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.pm | 11 |
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 = $@; |