From 80bb927591ba3249b38e5e7da8fddd28a45e948e Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Wed, 18 Mar 2009 17:35:41 +0000 Subject: diskdrake: o write partition table if needed before setting label o fix setting label on not yet formatted partition --- perl-install/NEWS | 2 ++ perl-install/diskdrake/interactive.pm | 9 +++++++-- perl-install/fs/format.pm | 6 ++++-- 3 files changed, 13 insertions(+), 4 deletions(-) (limited to 'perl-install') diff --git a/perl-install/NEWS b/perl-install/NEWS index c5844efe3..08a19a761 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -3,6 +3,8 @@ - diskdrake: o don't crash when creating a partition in LVM with the partition type buttons (#38078) + o write partition table if needed before setting label + o fix setting label on not yet formatted partition - drakbug: o add error to summary when crashing in order to help sort duplicates diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm index b899a2038..990920ab7 100644 --- a/perl-install/diskdrake/interactive.pm +++ b/perl-install/diskdrake/interactive.pm @@ -615,8 +615,13 @@ sub Label { my ($in, $_hd, $part) = @_; my $new_label = $part->{device_LABEL} || ""; - $in->ask_from(N("Set volume label"), N("Beware, this will be written to disk as soon as you validate!"), - [ + write_partitions($in, $_hd) or return; + + $in->ask_from(N("Set volume label"), + maybeFormatted($part) ? + N("Beware, this will be written to disk as soon as you validate!") + : N("Beware, this will be written to disk only after formatting!"), + [ { label => N("Which volume label?"), title => 1 }, { label => N("Label:"), val => \$new_label } ]) or return; diff --git a/perl-install/fs/format.pm b/perl-install/fs/format.pm index 6a7a0856b..509134b17 100644 --- a/perl-install/fs/format.pm +++ b/perl-install/fs/format.pm @@ -109,7 +109,7 @@ sub write_label { my ($part) = @_; $part->{device_LABEL_changed} or return; - $part->{isNotFormatted} and return; + maybeFormatted($part) or return; if ($part->{encrypt_key}) { fs::mount::set_loop($part); @@ -123,7 +123,7 @@ sub write_label { } else { @args = ($cmd, devices::make($dev), $part->{device_LABEL}); } - run_program::raw({ timeout => 'never' }, @args) or die N("setting label on %s failed", $dev); + run_program::raw({ timeout => 'never' }, @args) or die N("setting label on %s failed, is it formatted?", $dev); delete $part->{device_LABEL_changed}; } @@ -174,6 +174,8 @@ sub part_raw { run_program::raw({ timeout => 'never' }, @args) or die N("%s formatting of %s failed", $fs_type, $dev); } + delete $part->{device_LABEL_changed}; + # Preserve UUID on fs where we couldn't enforce it while formatting if ($fs_type eq 'jfs') { run_program::raw('jfs_tune', '-U', devices::make($dev)); -- cgit v1.2.1