]> git.proxmox.com Git - pve-storage.git/blobdiff - PVE/Storage.pm
avoid call to lvs when deactivating devices
[pve-storage.git] / PVE / Storage.pm
index c78bac6c06963de1210e05527d446385b8f4e467..cd74a3ade79cd039fc93b0b9e17820f0d4a95976 100755 (executable)
@@ -1981,8 +1981,6 @@ sub deactivate_volumes {
 
     return if !($vollist && scalar(@$vollist));
 
-    my $lvs = lvm_lvs ();
-
     my @errlist = ();
     foreach my $volid (@$vollist) {
        my ($storeid, $volname) = parse_volume_id ($volid);
@@ -1990,16 +1988,14 @@ sub deactivate_volumes {
        my $scfg = storage_config ($cfg, $storeid);
 
        if ($scfg->{type} eq 'lvm') {
-           my ($name) = parse_volname_lvm ($volname);
-
-           if ($lvs->{$scfg->{vgname}}->{$name}) {
-               my $path = path ($cfg, $volid);
-               my $cmd = ['/sbin/lvchange', '-aln', $path];
-               eval { run_command($cmd, errmsg => "can't deactivate LV '$volid'"); };
-               if (my $err = $@) {
-                   warn $err;
-                   push @errlist, $volid;
-               }
+           my $path = path ($cfg, $volid);
+           next if ! -b $path;
+
+           my $cmd = ['/sbin/lvchange', '-aln', $path];
+           eval { run_command($cmd, errmsg => "can't deactivate LV '$volid'"); };
+           if (my $err = $@) {
+               warn $err;
+               push @errlist, $volid;
            }
        }
     }