zfs: list zvol: skip different pools during parsing already
The 'pool' property in the result of zfs_parse_zvol_list() was not used for anything else. No functional change is intended. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
This commit is contained in:
committed by
Wolfgang Bumiller
parent
ebcb12ee09
commit
4c82e7b61c
@ -58,7 +58,7 @@ sub options {
|
|||||||
# static zfs helper methods
|
# static zfs helper methods
|
||||||
|
|
||||||
sub zfs_parse_zvol_list {
|
sub zfs_parse_zvol_list {
|
||||||
my ($text) = @_;
|
my ($text, $pool) = @_;
|
||||||
|
|
||||||
my $list = ();
|
my $list = ();
|
||||||
|
|
||||||
@ -73,12 +73,12 @@ sub zfs_parse_zvol_list {
|
|||||||
my @parts = split /\//, $dataset;
|
my @parts = split /\//, $dataset;
|
||||||
next if scalar(@parts) < 2; # we need pool/name
|
next if scalar(@parts) < 2; # we need pool/name
|
||||||
my $name = pop @parts;
|
my $name = pop @parts;
|
||||||
my $pool = join('/', @parts);
|
my $parsed_pool = join('/', @parts);
|
||||||
|
next if $parsed_pool ne $pool;
|
||||||
|
|
||||||
next unless $name =~ m!^(vm|base|subvol|basevol)-(\d+)-(\S+)$!;
|
next unless $name =~ m!^(vm|base|subvol|basevol)-(\d+)-(\S+)$!;
|
||||||
$zvol->{owner} = $2;
|
$zvol->{owner} = $2;
|
||||||
|
|
||||||
$zvol->{pool} = $pool;
|
|
||||||
$zvol->{name} = $name;
|
$zvol->{name} = $name;
|
||||||
if ($type eq 'filesystem') {
|
if ($type eq 'filesystem') {
|
||||||
if ($refquota eq 'none') {
|
if ($refquota eq 'none') {
|
||||||
@ -380,14 +380,11 @@ sub zfs_list_zvol {
|
|||||||
'-Hrp',
|
'-Hrp',
|
||||||
$scfg->{pool},
|
$scfg->{pool},
|
||||||
);
|
);
|
||||||
my $zvols = zfs_parse_zvol_list($text);
|
my $zvols = zfs_parse_zvol_list($text, $scfg->{pool});
|
||||||
return {} if !$zvols;
|
return {} if !$zvols;
|
||||||
|
|
||||||
my $list = {};
|
my $list = {};
|
||||||
foreach my $zvol (@$zvols) {
|
foreach my $zvol (@$zvols) {
|
||||||
# The "pool" in $scfg is not the same as ZFS pool, so it's necessary to filter here.
|
|
||||||
next if $scfg->{pool} ne $zvol->{pool};
|
|
||||||
|
|
||||||
my $name = $zvol->{name};
|
my $name = $zvol->{name};
|
||||||
my $parent = $zvol->{origin};
|
my $parent = $zvol->{origin};
|
||||||
if($zvol->{origin} && $zvol->{origin} =~ m/^$scfg->{pool}\/(\S+)$/){
|
if($zvol->{origin} && $zvol->{origin} =~ m/^$scfg->{pool}\/(\S+)$/){
|
||||||
|
|||||||
Reference in New Issue
Block a user