summaryrefslogtreecommitdiffstats
path: root/perl-install/partition_table
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/partition_table')
-rw-r--r--perl-install/partition_table/lvm.pm16
-rw-r--r--perl-install/partition_table/readonly.pm20
2 files changed, 27 insertions, 9 deletions
diff --git a/perl-install/partition_table/lvm.pm b/perl-install/partition_table/lvm.pm
index 0e8090772..e82d026e1 100644
--- a/perl-install/partition_table/lvm.pm
+++ b/perl-install/partition_table/lvm.pm
@@ -5,23 +5,19 @@ package partition_table::lvm; # $Id: $
use diagnostics;
use strict;
-our @ISA = qw(partition_table::raw);
+1;
use common;
-use partition_table::raw;
use fs::type;
use lvm;
-sub initialize {
- my ($class, $hd) = @_;
+sub _parts {
+ my ($hd) = @_;
my $part = { size => $hd->{totalsectors}, device => $hd->{device} };
add2hash($part, fs::type::type_name2subpart('Linux Logical Volume Manager'));
- $hd->{readonly} = $hd->{getting_rid_of_readonly_allowed} = 1;
- $hd->{primary}{normal} = [ $part ];
-
- bless $hd, $class;
+ [ $part ];
}
sub read_primary {
@@ -32,6 +28,8 @@ sub read_primary {
$type && $type->{pt_type} == $wanted->{pt_type} or return;
- partition_table::lvm->initialize($hd);
+ require partition_table::readonly;
+ partition_table::readonly->initialize($hd, _parts($hd));
+
1;
}
diff --git a/perl-install/partition_table/readonly.pm b/perl-install/partition_table/readonly.pm
new file mode 100644
index 000000000..c0d483aaf
--- /dev/null
+++ b/perl-install/partition_table/readonly.pm
@@ -0,0 +1,20 @@
+package partition_table::readonly; # $Id: $
+
+use diagnostics;
+use strict;
+
+our @ISA = qw(partition_table::raw);
+
+use common;
+use partition_table::raw;
+use fs::type;
+use lvm;
+
+sub initialize {
+ my ($class, $hd, $parts) = @_;
+
+ $hd->{readonly} = $hd->{getting_rid_of_readonly_allowed} = 1;
+ $hd->{primary}{normal} = $parts;
+
+ bless $hd, $class;
+}