diff options
author | Antoine Ginies <aginies@mandriva.com> | 2011-02-14 12:51:17 +0000 |
---|---|---|
committer | Antoine Ginies <aginies@mandriva.com> | 2011-02-14 12:51:17 +0000 |
commit | 78840527a343272e3ed3bb7fce46d70b5e5b2ce9 (patch) | |
tree | 8a4727ce488d91572dce0a5bc472fe5b28ccd973 /perl-install/fs/dmraid.pm | |
parent | 2cc14c2ae861f1ed514c2fbced7d4aac77de581b (diff) | |
download | drakx-78840527a343272e3ed3bb7fce46d70b5e5b2ce9.tar drakx-78840527a343272e3ed3bb7fce46d70b5e5b2ce9.tar.gz drakx-78840527a343272e3ed3bb7fce46d70b5e5b2ce9.tar.bz2 drakx-78840527a343272e3ed3bb7fce46d70b5e5b2ce9.tar.xz drakx-78840527a343272e3ed3bb7fce46d70b5e5b2ce9.zip |
backport diskdrake from 2010.1, remove ext4 support
Diffstat (limited to 'perl-install/fs/dmraid.pm')
-rw-r--r-- | perl-install/fs/dmraid.pm | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/perl-install/fs/dmraid.pm b/perl-install/fs/dmraid.pm index 319e48aa5..a744f01af 100644 --- a/perl-install/fs/dmraid.pm +++ b/perl-install/fs/dmraid.pm @@ -1,4 +1,4 @@ -package fs::dmraid; # $Id: dmraid.pm 247256 2008-10-01 13:07:51Z pixel $ +package fs::dmraid; # $Id: dmraid.pm 265309 2010-01-27 00:28:23Z pterjan $ use diagnostics; use strict; @@ -40,10 +40,26 @@ sub check { } sub _raid_devices_raw() { + # get the real vg names, needed for ddf1, and safer than begins_with for raid10 + log::l("_raid_devices_raw"); + my %vgs; + my %pv2vg = map { + log::l("got: $_"); + my %l; @l{qw(name size stride level status subsets devs spares)} = split(':'); + $vgs{$l{name}} = 1 if defined $l{spares}; + if(/freeing device "(.*)", path "(.*)"/ && defined $vgs{$1}) { + log::l("$2 => $1"); + { $2 => $1 }; + } + } call_dmraid('-d', '-s', '-c', '-c'); map { chomp; log::l("got: $_"); my %l; @l{qw(pv format vg level status size)} = split(':'); + if(defined $l{size} && defined $l{vg} && defined $pv2vg{$l{pv}} && !defined $vgs{$l{vg}}) { + log::l("using $pv2vg{$l{pv}} instead of $l{vg}"); + $l{vg} = $pv2vg{$l{pv}}; + } if_(defined $l{size}, \%l); } call_dmraid('-r', '-c', '-c'); } |