]> git.proxmox.com Git - pve-storage.git/commitdiff
zfs: list images: code cleanup
authorFiona Ebner <f.ebner@proxmox.com>
Tue, 20 Dec 2022 13:16:38 +0000 (14:16 +0100)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 21 Dec 2022 09:46:15 +0000 (10:46 +0100)
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
PVE/Storage/ZFSPoolPlugin.pm

index 08998944721b016af8abe9b1fbf72052fa41d43a..f829b86d94baf6a729048d50fd403fe62a72dabc 100644 (file)
@@ -254,36 +254,30 @@ sub free_image {
 sub list_images {
     my ($class, $storeid, $scfg, $vmid, $vollist, $cache) = @_;
 
-    my $zfs_list = $class->zfs_list_zvol($scfg);
+    my $zfs_list = $class->zfs_list_zvol($scfg) // {};
 
     my $res = [];
 
-    if (my $dat = $zfs_list) {
+    for my $info (values $zfs_list->%*) {
+       my $volname = $info->{name};
+       my $parent = $info->{parent};
+       my $owner = $info->{vmid};
 
-       foreach my $image (keys %$dat) {
-
-           my $info = $dat->{$image};
-
-           my $volname = $info->{name};
-           my $parent = $info->{parent};
-           my $owner = $info->{vmid};
-
-           if ($parent && $parent =~ m/^(\S+)\@__base__$/) {
-               my ($basename) = ($1);
-               $info->{volid} = "$storeid:$basename/$volname";
-           } else {
-               $info->{volid} = "$storeid:$volname";
-           }
-
-           if ($vollist) {
-               my $found = grep { $_ eq $info->{volid} } @$vollist;
-               next if !$found;
-           } else {
-               next if defined ($vmid) && ($owner ne $vmid);
-           }
+       if ($parent && $parent =~ m/^(\S+)\@__base__$/) {
+           my ($basename) = ($1);
+           $info->{volid} = "$storeid:$basename/$volname";
+       } else {
+           $info->{volid} = "$storeid:$volname";
+       }
 
-           push @$res, $info;
+       if ($vollist) {
+           my $found = grep { $_ eq $info->{volid} } @$vollist;
+           next if !$found;
+       } else {
+           next if defined ($vmid) && ($owner ne $vmid);
        }
+
+       push @$res, $info;
     }
     return $res;
 }