summaryrefslogtreecommitdiffstats
path: root/perl-install/partition_table.pm
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2001-08-24 12:41:59 +0000
committerPascal Rigaux <pixel@mandriva.com>2001-08-24 12:41:59 +0000
commitce3d76402238df340a784d56b49a7790e5405aba (patch)
tree2e31e4e20dd0567ae79782229a1970686d1b3ccb /perl-install/partition_table.pm
parentbb168ec2d43cb9eeec299660d2a543019731097b (diff)
downloaddrakx-ce3d76402238df340a784d56b49a7790e5405aba.tar
drakx-ce3d76402238df340a784d56b49a7790e5405aba.tar.gz
drakx-ce3d76402238df340a784d56b49a7790e5405aba.tar.bz2
drakx-ce3d76402238df340a784d56b49a7790e5405aba.tar.xz
drakx-ce3d76402238df340a784d56b49a7790e5405aba.zip
(write): unmount+remount real_mntpoint before doing the kernel_read
Diffstat (limited to 'perl-install/partition_table.pm')
-rw-r--r--perl-install/partition_table.pm8
1 files changed, 8 insertions, 0 deletions
diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm
index 0df607094..4bcfe70ea 100644
--- a/perl-install/partition_table.pm
+++ b/perl-install/partition_table.pm
@@ -541,7 +541,15 @@ sub write {
#- now sync disk and re-read the partition table
if ($hd->{needKernelReread}) {
common::sync();
+
+ my @magic_parts = grep { $_->{isMounted} && $_->{real_mntpoint} } get_normal_parts($hd);
+ foreach (@magic_parts) {
+ syscall_('umount', $_->{real_mntpoint}) or die _("error unmounting %s: %s", $_->{real_mntpoint}, "$!");
+ }
$hd->kernel_read;
+ foreach (@magic_parts) {
+ syscall_('mount', , $_->{real_mntpoint}, type2fs($_), c::MS_MGC_VAL()) or die _("mount failed: ") . "$!";
+ }
$hd->{needKernelReread} = 0;
}
}