diff options
-rw-r--r-- | perl-install/NEWS | 3 | ||||
-rw-r--r-- | perl-install/partition_table.pm | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/perl-install/NEWS b/perl-install/NEWS index d027b26f9..387fed8e2 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -1,3 +1,6 @@ +- diskdrake: + o don't ask to reboot after resize if not needed + Version 13.24 - 9 May 2010 - devices: 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}, $!)); |