summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2012-04-19 18:31:48 +0000
committerThierry Vignaud <tv@mageia.org>2012-04-19 18:31:48 +0000
commitca5c66da34ab81f01d93fa91db1431da71a34991 (patch)
treec21ef5d42040988797696151b344827bda13013f /perl-install
parent853ec3243a697032ef5fa22613897b68877c2973 (diff)
downloaddrakx-ca5c66da34ab81f01d93fa91db1431da71a34991.tar
drakx-ca5c66da34ab81f01d93fa91db1431da71a34991.tar.gz
drakx-ca5c66da34ab81f01d93fa91db1431da71a34991.tar.bz2
drakx-ca5c66da34ab81f01d93fa91db1431da71a34991.tar.xz
drakx-ca5c66da34ab81f01d93fa91db1431da71a34991.zip
(detect_during_install) stop all inactive raids before initializing RAIDs
(thus fixing installer not offering to upgrade RAID installs) rationale: udev starts raids early but fails because modules (especially personality ones) are not yet loaded; thus raids remains inactive ("md: personality for level 1 is not loaded!") regression introduced when swtiching to udev and including its rules since it works smoothly with rescue, I suspect the cause is in 60-persistent-storage.rules which is included in installer but not in rescue
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/install/NEWS3
-rw-r--r--perl-install/raid.pm5
2 files changed, 8 insertions, 0 deletions
diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS
index 6f2ea446e..d88e0b542 100644
--- a/perl-install/install/NEWS
+++ b/perl-install/install/NEWS
@@ -1,4 +1,7 @@
- fix a crash when package state is empty (mga#5487)
+- fix not offering to upgrade RAID installs
+ (udev was enabling RAIDs early but leaved them in inactive mode
+ due to not yet loaded personality modules)
- when selecting where ro install bootloader, display mountpoint if
available, and size+fs_type if we have nothing (mga#5460)
diff --git a/perl-install/raid.pm b/perl-install/raid.pm
index 8e551a888..cc06411e1 100644
--- a/perl-install/raid.pm
+++ b/perl-install/raid.pm
@@ -189,6 +189,11 @@ sub detect_during_install {
foreach (@{allmodules()}) {
eval { modules::load($_) };
}
+
+ # udev may have started raids but failed due to not yet loaded modules and
+ # they remains inactive ("md: personality for level 1 is not loaded!")
+ stop_inactive_mds();
+
detect_during_install_once(@parts);
detect_during_install_once(@parts) if active_mds(); #- try again to detect RAID 10
stop_inactive_mds();