summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/diskdrake/interactive.pm11
-rw-r--r--perl-install/fs/mount_options.pm15
2 files changed, 14 insertions, 12 deletions
diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm
index e2c666212..8651fc44d 100644
--- a/perl-install/diskdrake/interactive.pm
+++ b/perl-install/diskdrake/interactive.pm
@@ -950,13 +950,13 @@ sub Loopback {
sub Options {
my ($in, $hd, $part, $all_hds) = @_;
- my @simple_options = qw(user noauto supermount username= password=);
+ my @simple_options = qw(users noauto supermount username= password=);
my (undef, $user_implies) = fs::mount_options::list();
my ($options, $unknown) = fs::mount_options::unpack($part);
my %help = fs::mount_options::help();
- my $prev_user = $options->{user};
+ my %prev_options = %$options;
$in->ask_from(N("Mount options"),
'',
[
@@ -967,9 +967,10 @@ sub Options {
{ label => N("Various"), val => \$unknown, advanced => 1 },
],
changed => sub {
- if ($prev_user != $options->{user}) {
- $prev_user = $options->{user};
- $options->{$_} = $options->{user} foreach @$user_implies;
+ if (my $user = find { $prev_options{$_} != $options->{$_} } 'users', 'user') {
+ $options->{$user eq 'user' ? 'users' : 'user'} = 0 if $options->{$user}; # we don't want both user and users
+ $options->{$_} = $options->{$user} foreach @$user_implies;
+ %prev_options = %$options;
}
if ($options->{encrypted}) {
# modify $part->{options} for the check
diff --git a/perl-install/fs/mount_options.pm b/perl-install/fs/mount_options.pm
index e31db1653..608c830a9 100644
--- a/perl-install/fs/mount_options.pm
+++ b/perl-install/fs/mount_options.pm
@@ -48,8 +48,8 @@ sub unpack {
my %options = map { $_ => '' } keys %$non_defaults;
my @unknown;
foreach (split(",", $packed_options)) {
- if ($_ eq 'user') {
- $options{$_} = 1 foreach 'user', @$user_implies;
+ if (member($_, 'user', 'users')) {
+ $options{$_} = 1 foreach $_, @$user_implies;
} elsif (exists $non_defaults->{$_}) {
$options{$_} = 1;
} elsif ($defaults->{$_}) {
@@ -84,8 +84,9 @@ sub pack_ {
push @l, 'umask=' . min(@umasks);
}
- if (delete $options->{user}) {
- push @l, 'user';
+ if (my $user = find { delete $options->{$_} } 'users', 'user') {
+ push @l, $user;
+ delete $options->{user};
foreach (@$user_implies) {
if (!delete $options->{$_}) {
# overriding
@@ -134,11 +135,11 @@ have suidperl(1) installed.)"),
'supermount' => '',
- 'user' => N("Allow an ordinary user to mount the file system. The
+ 'users' => N("Allow an ordinary user to mount the file system. The
name of the mounting user is written to mtab so that he can unmount the file
system again. This option implies the options noexec, nosuid, and nodev
(unless overridden by subsequent options, as in the option line
-user,exec,dev,suid )."),
+user,exec,dev,suid )."),
'usrquota' => N("Enable user disk quota accounting, and optionally enforce limits"),
@@ -228,7 +229,7 @@ sub set_default {
});
}
if (fs::type::can_be_this_fs_type($part, 'iso9660')) {
- put_in_hash($options, { user => 1, noexec => 0, 'iocharset=' => $opts{iocharset} });
+ put_in_hash($options, { users => 1, noexec => 0, 'iocharset=' => $opts{iocharset} });
}
if ($part->{fs_type} eq 'reiserfs') {
$options->{notail} = 1;