From de612337a5fedd3619346b2634f00abbed82dc90 Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Mon, 10 May 2010 14:25:50 +0000 Subject: diskdrake: don't ask to reboot after resize if not needed --- perl-install/partition_table.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'perl-install/partition_table.pm') diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm index d67508384..cb79ea2f3 100644 --- a/perl-install/partition_table.pm +++ b/perl-install/partition_table.pm @@ -384,11 +384,11 @@ sub tell_kernel { my $F = partition_table::raw::openit($hd); + run_program::run('udevadm', 'control', '--stop-exec-queue') unless $::isInstall; + my $force_reboot = any { $_->[0] eq 'force_reboot' } @$tell_kernel; if (!$force_reboot) { - # only keep the last action on the partition number - # that way we do not del/add the same partition, and this helps udev :) - foreach (reverse(uniq_ { $_->[1] } reverse @$tell_kernel)) { + foreach (@$tell_kernel) { my ($action, $part_number, $o_start, $o_size) = @$_; if ($action eq 'add') { @@ -399,7 +399,11 @@ sub tell_kernel { log::l("tell kernel $action ($hd->{device} $part_number $o_start $o_size) force_reboot=$force_reboot rebootNeeded=$hd->{rebootNeeded}"); } } + + run_program::run('udevadm', 'control', '--start-exec-queue') unless $::isInstall; + if ($force_reboot) { + # FIXME Handle LVM/dmcrypt/RAID my @magic_parts = grep { $_->{isMounted} && $_->{real_mntpoint} } get_normal_parts($hd); foreach (@magic_parts) { syscall_('umount', $_->{real_mntpoint}) or log::l(N("error unmounting %s: %s", $_->{real_mntpoint}, $!)); -- cgit v1.2.1