zpool: avoid wrong mount-decoding of dataset

this was mistakenly done as the procfs code uses it and it was
assumed we need to decode this too to get both in the same
encoding-space and thus correct comparission.

But only procfs has that encoding, we don't have it for pool values
in the storage config, so we must not do a decode on that value, that
could potentially break.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht
2021-02-19 15:01:36 +01:00
parent e74b9dd79d
commit c31aee36d8

View File

@ -531,7 +531,7 @@ sub activate_storage {
my $dataset_mounted = sub {
my $mounted = 0;
my $dataset_dec = PVE::ProcFSTools::decode_mount($dataset);
my $mounts = eval { PVE::ProcFSTools::parse_proc_mounts() };
warn "$@\n" if $@;
foreach my $mp (@$mounts) {
@ -540,7 +540,7 @@ sub activate_storage {
# check for root-dataset of storage or any child-dataset.
# root-dataset could have 'canmount=off'. If any child is mounted
# heuristically assume that `zfs mount -a` was successful
next if $what !~ m!^$dataset_dec(?:/|$)!;
next if $what !~ m!^$dataset(?:/|$)!;
$mounted = 1;
last;
}