diff --git a/PVE/Storage.pm b/PVE/Storage.pm index 7845ad1..1ab5786 100755 --- a/PVE/Storage.pm +++ b/PVE/Storage.pm @@ -181,6 +181,7 @@ sub volume_snapshot_rollback { if ($storeid) { my $scfg = storage_config($cfg, $storeid); my $plugin = PVE::Storage::Plugin->lookup($scfg->{type}); + $plugin->volume_rollback_is_possible($scfg, $storeid, $volname, $snap); return $plugin->volume_snapshot_rollback($scfg, $storeid, $volname, $snap); } elsif ($volid =~ m|^(/.+)$| && -e $volid) { die "snapshot rollback device is not possible"; diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm index 6aac58d..f020985 100644 --- a/PVE/Storage/ZFSPlugin.pm +++ b/PVE/Storage/ZFSPlugin.pm @@ -310,9 +310,6 @@ sub volume_resize { sub volume_snapshot_rollback { my ($class, $scfg, $storeid, $volname, $snap) = @_; - # abort rollback if snapshot is not the latest - $class->volume_rollback_is_possible($scfg, $storeid, $volname, $snap); - $class->zfs_delete_lu($scfg, $volname); $class->zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$snap"); diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm index 2a1cfef..7dc7d3e 100644 --- a/PVE/Storage/ZFSPoolPlugin.pm +++ b/PVE/Storage/ZFSPoolPlugin.pm @@ -411,9 +411,6 @@ sub volume_snapshot_delete { sub volume_snapshot_rollback { my ($class, $scfg, $storeid, $volname, $snap) = @_; - # abort rollback if snapshot is not the latest - $class->volume_rollback_is_possible($scfg, $storeid, $volname, $snap); - zfs_request($class, $scfg, undef, 'rollback', "$scfg->{pool}/$volname\@$snap"); }