[pve-devel] [PATCH qemu-server] drive: volume in-use check: fix fallback path comparison

Fabian Ebner f.ebner at proxmox.com
Thu Apr 15 12:10:57 CEST 2021

When checking whether a volume is still referenced by a snapshot, the volid
itself is first checked. When the volid is different, we fall back to comparing
the path.

As the first value to be compared is a volume's path, the second value better be
a volume's path too, and not a snapshot's path.

See also 77019edfe0c190c949cdc0b0e3b4ad2ca37313b3 for historical context.

The error that led me here:
* had a VM with ZFS over iSCSI storage with an exsiting snapshot
* add new unused drive
* try to remove the unsued drive
* fails, because ZFS (not Pool!) Plugin does not support snapshot paths.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
 PVE/QemuServer/Drive.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/PVE/QemuServer/Drive.pm b/PVE/QemuServer/Drive.pm
index 01ea8d7..9016a43 100644
--- a/PVE/QemuServer/Drive.pm
+++ b/PVE/QemuServer/Drive.pm
@@ -590,7 +590,7 @@ sub is_volume_in_use {
 		    next if !$storeid;
 		    my $scfg = PVE::Storage::storage_config($storecfg, $storeid, 1);
 		    next if !$scfg;
-		    return 1 if $path eq PVE::Storage::path($storecfg, $drive->{file}, $snapname);
+		    return 1 if $path eq PVE::Storage::path($storecfg, $drive->{file});

More information about the pve-devel mailing list