From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id D60E67382A for ; Fri, 18 Jun 2021 13:00:17 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 56D6926BED for ; Fri, 18 Jun 2021 12:59:47 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 3B57B26B46 for ; Fri, 18 Jun 2021 12:59:43 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 10A1A44214 for ; Fri, 18 Jun 2021 12:59:43 +0200 (CEST) From: Fabian Ebner To: pve-devel@lists.proxmox.com Date: Fri, 18 Jun 2021 12:59:35 +0200 Message-Id: <20210618105938.57107-7-f.ebner@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210618105938.57107-1-f.ebner@proxmox.com> References: <20210618105938.57107-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.711 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [storage.pm, pools.pm] Subject: [pve-devel] [PATCH storage 1/2] vdisk_list: only scan storages with the correct content type(s) X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 11:00:17 -0000 The enabled check in the lower loop is now redundant and can be removed. If storeid is provided, initialize the result hash accordingly, mainly for backwards compatibility (needed by a caller in pve-manager's Ceph/Pools.pm and the migration code in pve-container and qemu-server), but it also is less surprising in general. Remaining vdisk_list users that do not specify a content type are: 1. pve-manager's Pool/Ceph.pm, but the content type for RBD can only be rootdir and images, so the storage is scanned (if enabled, same as before). 2. pve-container migration 3. qemu-server migration For the latter two, it's planned to enforce content type, so the change is fine too. This also means that for iscsi(direct) plugins with content type 'none', i.e. "use LUNs directly" does not return the list of images anymore, but that was rather a bug anyways as they're not virtual disks then: 0.0.0.scsi-36001405b8f2772e13a04b8e9390db13d All of the remaining callers not using content types (see above) are fine with that change too. Signed-off-by: Fabian Ebner --- Breaks old migration behavior when there are unused/unreferenced/vmstate volumes on a misconfigured storage! PVE/Storage.pm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/PVE/Storage.pm b/PVE/Storage.pm index 3aa2100..7312eba 100755 --- a/PVE/Storage.pm +++ b/PVE/Storage.pm @@ -936,7 +936,7 @@ sub vdisk_list { storage_check_enabled($cfg, $storeid) if ($storeid); - my $res = {}; + my $res = $storeid ? { $storeid => [] } : {}; # prepare/activate/refresh all storages @@ -963,12 +963,8 @@ sub vdisk_list { activate_storage_list($cfg, $storage_list, $cache); - # FIXME PVE 7.0: only scan storages with the correct content types - my $scan = defined($ctype) ? $storage_list : [ keys %{$ids} ]; - - foreach my $sid (@{$scan}) { + for my $sid ($storage_list->@*) { next if $storeid && $storeid ne $sid; - next if !storage_check_enabled($cfg, $sid, undef, 1); my $scfg = $ids->{$sid}; my $plugin = PVE::Storage::Plugin->lookup($scfg->{type}); -- 2.30.2